Changeset 115
- Timestamp:
- Aug 26, 2010, 12:00:13 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/openjdk/hotspot/src/os/os2/vm/os_os2.cpp ¶
r114 r115 86 86 pLibRec->hmte = os2_NULLHANDLE; 87 87 st->print(" %s\n", pLibRec->pName); 88 // It happens that for some modules ctObj is > 0 but 89 // pbjInfo is NULL. I have no idea why. 90 if (pLibRec->pObjInfo && pLibRec->fFlat) { 91 for (ULONG i = 0; i < pLibRec->ctObj; ++i) { 92 if (pLibRec->pObjInfo[i].oaddr) 93 st->print(" " PTR_FORMAT " - " PTR_FORMAT "\n", 94 pLibRec->pObjInfo[i].oaddr, 95 pLibRec->pObjInfo[i].oaddr + 96 pLibRec->pObjInfo[i].osize); 97 } 88 // It happens that for some modules ctObj is > 0 but pbjInfo is 89 // NULL. This seems to be an OS/2 FP13 bug. Here is the solution I 90 // found in the Odin32 sources (kernel32/winimagepe2lx.cpp): 91 if (pLibRec->ctObj > 0 && pLibRec->pObjInfo == NULL) { 92 pLibRec->pObjInfo = (os2_QSLOBJREC *) 93 ((char*) pLibRec 94 + ((sizeof(os2_QSLREC) /* size of the lib record */ 95 + pLibRec->ctImpMod * sizeof(os2_USHORT) /* size of the array of imported modules */ 96 + strlen((char*)pLibRec->pName) + 1 /* size of the filename */ 97 + 3) & ~3)); /* the size is align on 4 bytes boundrary */ 98 pLibRec->pNextRec = (os2_PVOID *)((char *)pLibRec->pObjInfo 99 + sizeof(os2_QSLOBJREC) * pLibRec->ctObj); 100 } 101 for (ULONG i = 0; i < pLibRec->ctObj; ++i) { 102 if (pLibRec->pObjInfo[i].oaddr) 103 st->print(" " PTR_FORMAT " - " PTR_FORMAT "\n", 104 pLibRec->pObjInfo[i].oaddr, 105 pLibRec->pObjInfo[i].oaddr + 106 pLibRec->pObjInfo[i].osize); 98 107 } 99 108 // Print imported modules of this module
Note:
See TracChangeset
for help on using the changeset viewer.