Changeset 326 for trunk/nom/src/nombuildnomobj.c
- Timestamp:
- Apr 9, 2008, 10:22:08 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nom/src/nombuildnomobj.c
r255 r326 33 33 * ***** END LICENSE BLOCK ***** */ 34 34 35 #define INCL_DOS 36 #define INCL_DOSERRORS 37 38 #include <os2.h> 35 #ifdef __OS2__ 36 # define INCL_DOS 37 # define INCL_DOSERRORS 38 # include <os2.h> 39 #endif /* __OS2__ */ 40 39 41 #include <stdio.h> 40 42 #include <string.h> … … 67 69 */ 68 70 69 static ULONGthunk[]={0x0424448b, 0x00000405, 0x0000c300};71 static gulong thunk[]={0x0424448b, 0x00000405, 0x0000c300}; 70 72 71 73 /* … … 74 76 JMP DWORD PTR [EDX+0ACh] : JMP to address pointing to by EDX+0ACh 75 77 */ 76 static ULONGmThunkCode[]={0x04244c8b, 0xff00518b, 0x0000aca2 , 0x16000000};78 static gulong mThunkCode[]={0x04244c8b, 0xff00518b, 0x0000aca2 , 0x16000000}; 77 79 78 80 /********************************************************/ … … 100 102 gulong mtabSize; 101 103 gulong ulMemSize=0; 102 BYTE* mem;104 guint8 * mem; 103 105 int a; 104 106 … … 116 118 117 119 /* Alloc private class struct using NOMCalloc. */ 118 if((nClass=(NOMClassPriv*)NOMCalloc(1, ulMemSize))==NULL HANDLE)119 return NULL HANDLE;120 if((nClass=(NOMClassPriv*)NOMCalloc(1, ulMemSize))==NULL) 121 return NULL; 120 122 121 123 … … 138 140 nClass->mtab->mtabSize=mtabSize; /* This mtab is the same as the one used in the public NOMClass */ 139 141 nClass->mtab->nomClsInfo=(nomClassInfo*)nClass; /* Hold a pointer to the private data that is this NOMClassPriv */ 142 #ifndef _MSC_VER 140 143 #warning !!!!! Change this when nomId is a GQuark !!!!! 144 #endif 141 145 nClass->mtab->nomClassName=*sci->nomClassId; 142 146 nClass->mtab->ulInstanceSize=sci->ulInstanceDataSize+sizeof(nomMethodTabPtr); /* sizeof(methodTabStruct*) + size of instance data of this class … … 151 155 if(!nClass->mThunk) { 152 156 NOMFree(nClass); 153 return NULL HANDLE;157 return NULL; 154 158 } 155 159 } … … 172 176 /* Now finally put the thunking in so the procedures are resolved correctly. */ 173 177 for(a=0;a<sci->ulNumStaticMethods;a++) { 174 ULONGulOffset;178 gulong ulOffset; 175 179 176 180 memcpy(&nClass->mThunk[a], mThunkCode, sizeof(mThunkCode)); /* Copy method thunking code template */ 177 ulOffset=( ULONG)((char*)(mem+sizeof(NOMClass*))-(char*)nClass->mtab); /* Skip priv class data pointer */181 ulOffset=(gulong)((char*)(mem+sizeof(NOMClass*))-(char*)nClass->mtab); /* Skip priv class data pointer */ 178 182 nClass->mThunk[a].thunk[2]=((ulOffset+a*sizeof(nomMethodProc*))<<8)+0xa2; /* Calculate offset for assembler code */ 179 183 #ifdef DEBUG_BUILDNOMOBJECT … … 202 206 { 203 207 NOMClassPriv *nClassPriv; /* This struct holds our private data. A pointer will be in mtab->nomClsInfo */ 204 ULONGulParentDataSize=0;208 gulong ulParentDataSize=0; 205 209 206 210 #ifdef DEBUG_BUILDNOMOBJECT … … 210 214 211 215 /* Note: NOMObject has no parents */ 212 if((nClassPriv=buildNOMClassPrivStructForNOMObject(sci))==NULL HANDLE)213 return NULL HANDLE;216 if((nClassPriv=buildNOMClassPrivStructForNOMObject(sci))==NULL) 217 return NULL; 214 218 215 219 #ifdef DEBUG_BUILDNOMOBJECT … … 221 225 sci->ccds->parentMtab->mtab=nClassPriv->mtab; /* This class mtab */ 222 226 sci->ccds->parentMtab->next=NULL; /* We dont have parents because we are NOMObject */ 223 sci->ccds->parentMtab->nomClassObject=NULL HANDLE; /* NOMClass* Class object. We don't have one yet */227 sci->ccds->parentMtab->nomClassObject=NULL; /* NOMClass* Class object. We don't have one yet */ 224 228 sci->ccds->parentMtab->ulInstanceSize=nClassPriv->mtab->ulInstanceSize; 225 229 /* C Class data structure */ … … 267 271 268 272 /* Run initialization code if any */ 269 _nomInit((NOMObject*)nClassPriv, NULL HANDLE);270 return NULL HANDLE;273 _nomInit((NOMObject*)nClassPriv, NULL); 274 return NULL; 271 275 } 272 276
Note:
See TracChangeset
for help on using the changeset viewer.