Ignore:
Timestamp:
Sep 23, 2010, 7:54:50 PM (15 years ago)
Author:
ydario
Message:

Cannot commit already committed memory, check status before calling DosSetMem.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gdi32/dibsect.cpp

    r10467 r21455  
    10791079    else
    10801080    if(!fWriteAccess) {
    1081         APIRET rc = DosSetMem(lpBase, dwSize, PAG_READ|PAG_COMMIT);
     1081        ULONG  ulMemFlags = 0;
     1082        ULONG  ulMemCommit = PAG_COMMIT;
     1083        ULONG  ulMemSize  = 0;
     1084        APIRET rc = DosQueryMem(lpBase, &ulMemSize, &ulMemFlags);
     1085        if(rc) {
     1086            dprintf(("DosQueryMem failed with %d!!", rc));
     1087            DebugInt3();
     1088            return FALSE;
     1089        }
     1090        dprintf(("DosQueryMem size %d, flags %x", ulMemSize, ulMemFlags));
     1091        // YD cannot commit memory two times!
     1092        if ((ulMemFlags & PAG_COMMIT) == PAG_COMMIT)
     1093            ulMemCommit = 0;
     1094        rc = DosSetMem(lpBase, dwSize, PAG_READ|ulMemCommit);
    10821095        if(rc) {
    10831096            dprintf(("DosSetMem failed with %d!!", rc));
Note: See TracChangeset for help on using the changeset viewer.