[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dotgnu-pnet-commits] pnet ChangeLog image/class.c image/member.c ima...
From: |
Klaus Treichel |
Subject: |
[dotgnu-pnet-commits] pnet ChangeLog image/class.c image/member.c ima... |
Date: |
Mon, 10 Sep 2007 19:16:43 +0000 |
CVSROOT: /cvsroot/dotgnu-pnet
Module name: pnet
Changes by: Klaus Treichel <ktreichel> 07/09/10 19:16:42
Modified files:
. : ChangeLog
image : class.c member.c misc_token.c
include : il_program.h
Log message:
Revert the changes in ILTypeSpecGetClass and ILTypeSpecGetClassRef and
add the
new function ILTypeSpecGetClassWrapper instead.
Call the new function ILTypeSpecGetClassWrapper for creating the member
owner
if the passed owner is a TypeSpec in ILMemberRefCreate.
Optimize ILClassNextMember and ILClassNextMemberByKind.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnet/ChangeLog?cvsroot=dotgnu-pnet&r1=1.3492&r2=1.3493
http://cvs.savannah.gnu.org/viewcvs/pnet/image/class.c?cvsroot=dotgnu-pnet&r1=1.37&r2=1.38
http://cvs.savannah.gnu.org/viewcvs/pnet/image/member.c?cvsroot=dotgnu-pnet&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/pnet/image/misc_token.c?cvsroot=dotgnu-pnet&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/pnet/include/il_program.h?cvsroot=dotgnu-pnet&r1=1.58&r2=1.59
Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ChangeLog,v
retrieving revision 1.3492
retrieving revision 1.3493
diff -u -b -r1.3492 -r1.3493
--- ChangeLog 10 Sep 2007 08:38:23 -0000 1.3492
+++ ChangeLog 10 Sep 2007 19:16:41 -0000 1.3493
@@ -1,3 +1,13 @@
+2007-09-10 Klaus Treichel <address@hidden>
+
+ * image/misc_token.c, include/il_program.h: Revert the changes in
+ ILTypeSpecGetClass and ILTypeSpecGetClassRef. Add the new function
+ ILTypeSpecGetClassWrapper instead.
+
+ * image/member.c Call the new function ILTypeSpecGetClassWrapper for
+ creating the member owner if the passed owner is a TypeSpec in
+ ILMemberRefCreate.
+
2007-09-10 Radek Polak <address@hidden>
* configure.in: Added check for clock_gettime.
Index: image/class.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/image/class.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- image/class.c 21 Jul 2007 13:05:07 -0000 1.37
+++ image/class.c 10 Sep 2007 19:16:42 -0000 1.38
@@ -1355,15 +1355,18 @@
ILMember *ILClassNextMember(ILClass *info, ILMember *last)
{
- info = ILClassGetUnderlying(info);
if(last)
{
return last->nextMember;
}
else if(info)
{
+ info = ILClassGetUnderlying(info);
+ if(info)
+ {
return info->firstMember;
}
+ }
else
{
return 0;
@@ -1372,15 +1375,18 @@
ILMember *ILClassNextMemberByKind(ILClass *info, ILMember *last, int kind)
{
- info = ILClassGetUnderlying(info);
if(last)
{
last = last->nextMember;
}
else if(info)
{
+ info = ILClassGetUnderlying(info);
+ if(info)
+ {
last = info->firstMember;
}
+ }
else
{
return 0;
@@ -1399,15 +1405,18 @@
ILMember *ILClassNextMemberMatch(ILClass *info, ILMember *last, int kind,
const char
*name, ILType *signature)
{
- info = ILClassGetUnderlying(info);
if(last)
{
last = last->nextMember;
}
else if(info)
{
+ info = ILClassGetUnderlying(info);
+ if(info)
+ {
last = info->firstMember;
}
+ }
else
{
return 0;
Index: image/member.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/image/member.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- image/member.c 15 Jul 2007 19:55:24 -0000 1.31
+++ image/member.c 10 Sep 2007 19:16:42 -0000 1.32
@@ -298,7 +298,7 @@
if((spec = ILProgramItemToTypeSpec(owner)) != 0)
{
- memberRef->member.owner = ILTypeSpecGetClass(spec);
+ memberRef->member.owner = ILTypeSpecGetClassWrapper(spec);
}
else if((member = ILProgramItemToMember(owner)) != 0)
{
Index: image/misc_token.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/image/misc_token.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- image/misc_token.c 15 Aug 2007 18:55:18 -0000 1.12
+++ image/misc_token.c 10 Sep 2007 19:16:42 -0000 1.13
@@ -80,17 +80,16 @@
}
ILClass *ILTypeSpecGetClass(ILTypeSpec *spec)
-{
+ {
if(spec)
{
- if(!(spec->classInfo))
+ if(!(spec->refInfo))
{
- /* Make a wrapper class that corresponds to the type */
- spec->classInfo =
ILClassCreateWrapper(ILToProgramItem(spec),
-
spec->programItem.token,
-
spec->type);
+ /* Make a synthetic class that corresponds to the type
*/
+ spec->refInfo =
ILClassFromType(spec->programItem.image, 0,
+
spec->type, ILClassResolveSystem);
}
- return spec->classInfo;
+ return spec->refInfo;
}
return 0;
}
@@ -99,28 +98,35 @@
{
if(spec)
{
- if(!(spec->refInfo))
- {
- ILClass *info =
ILClassFromType(spec->programItem.image, 0,
-
spec->type, ILClassResolveSystem);
+ ILClass *info = ILTypeSpecGetClass(spec);
if(!info || info->programItem.image ==
spec->programItem.image)
{
- spec->refInfo = info;
+ return info;
}
- else
- {
info = ILClassImport(spec->programItem.image,
info);
- if(!info)
+ if(info)
{
- return 0;
- }
info->programItem.token =
spec->programItem.token;
info->synthetic = spec->type;
- spec->refInfo = info;
}
+ return info;
}
- return spec->refInfo;
+ return 0;
+}
+
+ILClass *ILTypeSpecGetClassWrapper(ILTypeSpec *spec)
+{
+ if(spec)
+ {
+ if(!(spec->classInfo))
+ {
+ /* Make a wrapper class that corresponds to the type */
+ spec->classInfo =
ILClassCreateWrapper(ILToProgramItem(spec),
+
spec->programItem.token,
+
spec->type);
+ }
+ return spec->classInfo;
}
return 0;
}
Index: include/il_program.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/include/il_program.h,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -b -r1.58 -r1.59
--- include/il_program.h 17 Jul 2007 17:30:29 -0000 1.58
+++ include/il_program.h 10 Sep 2007 19:16:42 -0000 1.59
@@ -1860,6 +1860,14 @@
ILClass *ILTypeSpecGetClassRef(ILTypeSpec *spec);
/*
+ * Get the wrapper class information block that correspondends to the TypeSpec.
+ * The returned wrapper class is guaranteed to be in the same image.
+ * The wrapper class in intended to be used as owner of MemberRefs during
+ * image building.
+ */
+ILClass *ILTypeSpecGetClassWrapper(ILTypeSpec *spec);
+
+/*
* Helper macros for querying information about a TypeSpec's.
*/
#define ILTypeSpec_FromToken(image,token) \
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dotgnu-pnet-commits] pnet ChangeLog image/class.c image/member.c ima...,
Klaus Treichel <=