@@ -346,7 +346,7 @@ Class *createArrayClass(DomainDesc * domain, char *name)
346346 arrayClass -> magic = MAGIC_CLASSDESC ;
347347#endif
348348 arrayClass -> classType = CLASSTYPE_ARRAYCLASS ;
349- arrayClass -> name ;// = (char *) jxmalloc(strlen(name) + 1 MEMTYPE_OTHER);
349+ arrayClass -> name = name ;// (char *) jxmalloc(strlen(name) + 1 MEMTYPE_OTHER);
350350 //strcpy(arrayClass->name, name);
351351 arrayClass -> elementClass = c -> classDesc ;
352352
@@ -391,7 +391,7 @@ ArrayClassDesc *createSharedArrayClassDesc(char *name)
391391 SystemTable -> BootServices -> AllocatePool (EfiLoaderData , sizeof (ArrayClassDesc ) + (11 + 1 ) * 4 , (void * * )& arrayClass );
392392 //memset(arrayClass, 0, sizeof(ArrayClassDesc) + namelen);
393393 arrayClass -> name = name ;//(char *)arrayClass + sizeof(ArrayClassDesc);
394- arrayClass -> vtable = (char * )arrayClass + 4 ;
394+ arrayClass -> vtable = (char * )arrayClass + sizeof ( ArrayClassDesc ) + 4 ;
395395#ifdef USE_QMAGIC
396396 arrayClass -> magic = MAGIC_CLASSDESC ;
397397#endif
@@ -439,6 +439,10 @@ ArrayClassDesc *createSharedArrayClassDescUsingElemClass(ClassDesc * elemClass)
439439 }
440440
441441 //arrayClass = malloc_arrayclassdesc(domainZero, namelen + 1);
442+ SystemTable -> BootServices -> AllocatePool (EfiLoaderData , sizeof (ArrayClassDesc ) + namelen + (11 + 1 ) * 4 , (void * * )& arrayClass );
443+ memset (arrayClass , 0 , sizeof (ArrayClassDesc ) + namelen );
444+ arrayClass -> name = (char * )arrayClass + sizeof (ArrayClassDesc );
445+ arrayClass -> vtable = arrayClass -> name + namelen + 4 ;
442446#ifdef USE_QMAGIC
443447 arrayClass -> magic = MAGIC_CLASSDESC ;
444448#endif
@@ -558,10 +562,10 @@ Class *findClassOrPrimitive(DomainDesc * domain, char *name)
558562 }
559563 } else {
560564 // FIXME: name is not a real class name but a signature
561- char tmp [80 ];
565+ // char tmp[80];
562566 //strncpy(tmp, name + 1, strlen(name) - 2);
563- tmp [strlen (name ) - 2 ] = '\0' ;
564- return findClass (domain , tmp );
567+ // tmp[strlen(name) - 2] = '\0';
568+ return findClass (domain , name + 1 );
565569 }
566570 wprintf (u"findClOrPrim error name=%s" , name );
567571 return NULL ;
@@ -1088,16 +1092,16 @@ LibDesc *load(DomainDesc * domain, char *filename)
10881092
10891093 if (sharedLib == NULL ) {
10901094 /* could not find a loaded lib, now try to load it */
1091- TempMemory * tmp_mem ; // = jxmalloc_tmp(6000);
1095+ // TempMemory *tmp_mem = jxmalloc_tmp(6000);
10921096
10931097 /*FIXME: shared libraries should not always be loaded into domainzero */
1094- //sharedLib = loadSharedLibrary(domainZero, filename, tmp_mem );
1098+ //sharedLib = loadSharedLibrary(domainZero, filename);
10951099
10961100 if (sharedLib == NULL )
10971101 wprintf (u"could not load shared library \"%s\"" , filename );
10981102 ASSERTSLIB (sharedLib );
10991103
1100- //linksharedlib(domainZero, sharedLib, (jint) specialAllocObject, (jint) vmSpecialAllocArray, tmp_mem );
1104+ //linksharedlib(domainZero, sharedLib, (jint) specialAllocObject, (jint) vmSpecialAllocArray);
11011105 //jxfree_tmp(tmp_mem);
11021106 }
11031107
@@ -1348,12 +1352,12 @@ SharedLibDesc *loadSharedLibrary(DomainDesc * domain, char *filename, char* code
13481352
13491353 // FIXME: shared libraries should not always be loaded into domainzero
13501354 //printf("slib %s load %s\n",lib->name,libname);
1351- neededLib = loadSharedLibrary (domain , libname , codefilepos , size );
1355+ // neededLib = loadSharedLibrary(domain, libname, codefilepos, size);
13521356 if (neededLib == NULL ) {
13531357 //printf("Could not load shared library %s needed by %s!\n",libname,filename);
13541358 } else {
13551359 //printf("link %s ",libname);
1356- linksharedlib (domain , neededLib , /* (jint) specialAllocObject*/ NULL , /* (jint) vmSpecialAllocArray*/ NULL );
1360+ // linksharedlib(domain, neededLib, (jint) specialAllocObject, (jint) vmSpecialAllocArray);
13571361 //printf("done.\n");
13581362 }
13591363
@@ -2734,10 +2738,10 @@ void findClassDescAndMethodInLib(SharedLibDesc * lib, char *classname, char *met
27342738 }
27352739
27362740 for (i = 0 ; i < lib -> numberOfClasses ; i ++ ) {
2737- if (classname == lib -> allClasses [i ].name ) {
2741+ if (strcmp ( classname , lib -> allClasses [i ].name ) == 0 ) {
27382742 for (j = 0 ; j < lib -> allClasses [i ].numberOfMethods ; j ++ ) {
2739- if (methodname == lib -> allClasses [i ].methods [j ].name ) {
2740- if (signature == lib -> allClasses [i ].methods [j ].signature ) {
2743+ if (strcmp ( methodname , lib -> allClasses [i ].methods [j ].name ) == 0 ) {
2744+ if (strcmp ( signature , lib -> allClasses [i ].methods [j ].signature ) == 0 ) {
27412745 * classFound = & (lib -> allClasses [i ]);
27422746 * methodFound = & (lib -> allClasses [i ].methods [j ]);
27432747 return ;
0 commit comments