Skip to content

Commit 2fffd63

Browse files
committed
save
1 parent c7cf57c commit 2fffd63

3 files changed

Lines changed: 17 additions & 13 deletions

File tree

BOOTAA64.EFI

0 Bytes
Binary file not shown.

build/efi_main.o

0 Bytes
Binary file not shown.

loader/load.c

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)