Changeset 33269 in vbox for trunk/src/VBox/Runtime/r3/win
- Timestamp:
- Oct 20, 2010 3:42:28 PM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 66829
- Location:
- trunk/src/VBox/Runtime/r3/win
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r3/win/alloc-win.cpp
r31158 r33269 76 76 77 77 78 RTDECL(void) RTMemExecFree(void *pv ) RT_NO_THROW78 RTDECL(void) RTMemExecFree(void *pv, size_t cb) RT_NO_THROW 79 79 { 80 80 if (pv) -
trunk/src/VBox/Runtime/r3/win/semevent-win.cpp
r28800 r33269 42 42 #include <iprt/thread.h> 43 43 #include "internal/magics.h" 44 #include "internal/mem.h" 44 45 #include "internal/strict.h" 45 46 … … 60 61 bool volatile fEverHadSignallers; 61 62 #endif 63 /** The creation flags. */ 64 uint32_t fFlags; 62 65 }; 63 66 … … 72 75 RTDECL(int) RTSemEventCreateEx(PRTSEMEVENT phEventSem, uint32_t fFlags, RTLOCKVALCLASS hClass, const char *pszNameFmt, ...) 73 76 { 74 AssertReturn(!(fFlags & ~RTSEMEVENT_FLAGS_NO_LOCK_VAL), VERR_INVALID_PARAMETER); 75 76 struct RTSEMEVENTINTERNAL *pThis = (struct RTSEMEVENTINTERNAL *)RTMemAlloc(sizeof(*pThis)); 77 AssertReturn(!(fFlags & ~(RTSEMEVENT_FLAGS_NO_LOCK_VAL | RTSEMEVENT_FLAGS_BOOTSTRAP_HACK)), VERR_INVALID_PARAMETER); 78 Assert(!(fFlags & RTSEMEVENT_FLAGS_BOOTSTRAP_HACK) || (fFlags & RTSEMEVENT_FLAGS_NO_LOCK_VAL)); 79 80 struct RTSEMEVENTINTERNAL *pThis; 81 if (!(fFlags & RTSEMEVENT_FLAGS_BOOTSTRAP_HACK)) 82 pThis = (struct RTSEMEVENTINTERNAL *)RTMemAlloc(sizeof(*pThis)); 83 else 84 pThis = (struct RTSEMEVENTINTERNAL *)rtMemBaseAlloc(sizeof(*pThis)); 77 85 if (!pThis) 78 86 return VERR_NO_MEMORY; … … 86 94 { 87 95 pThis->u32Magic = RTSEMEVENT_MAGIC; 96 pThis->fFlags = fFlags; 88 97 #ifdef RTSEMEVENT_STRICT 89 98 if (!pszNameFmt) … … 111 120 112 121 DWORD dwErr = GetLastError(); 113 RTMemFree(pThis); 122 if (!(fFlags & RTSEMEVENT_FLAGS_BOOTSTRAP_HACK)) 123 RTMemFree(pThis); 124 else 125 rtMemBaseFree(pThis); 114 126 return RTErrConvertFromWin32(dwErr); 115 127 } … … 134 146 RTLockValidatorRecSharedDelete(&pThis->Signallers); 135 147 #endif 136 RTMemFree(pThis); 148 if (!(pThis->fFlags & RTSEMEVENT_FLAGS_BOOTSTRAP_HACK)) 149 RTMemFree(pThis); 150 else 151 rtMemBaseFree(pThis); 137 152 } 138 153 else … … 218 233 */ 219 234 #ifdef RTSEMEVENT_STRICT 220 RTTHREAD hThreadSelf = RTThreadSelfAutoAdopt(); 235 RTTHREAD hThreadSelf = !(pThis->fFlags & RTSEMEVENT_FLAGS_BOOTSTRAP_HACK) 236 ? RTThreadSelfAutoAdopt() 237 : RTThreadSelf(); 221 238 if (pThis->fEverHadSignallers) 222 239 {
Note:
See TracChangeset
for help on using the changeset viewer.