Changeset 3854 for trunk/src/kernel32/windllbase.cpp
- Timestamp:
- Jul 18, 2000, 8:37:30 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/windllbase.cpp
r3704 r3854 1 /* $Id: windllbase.cpp,v 1.1 4 2000-06-14 02:27:33 phallerExp $ */1 /* $Id: windllbase.cpp,v 1.15 2000-07-18 18:37:29 sandervl Exp $ */ 2 2 3 3 /* … … 51 51 Win32ImageBase *parent) 52 52 : Win32ImageBase(hinstance), 53 referenced(0), fSkip EntryCalls(FALSE), next(NULL), fInserted(FALSE),53 referenced(0), fSkipThreadEntryCalls(FALSE), next(NULL), fInserted(FALSE), 54 54 fAttachedToProcess(FALSE), fUnloaded(FALSE), 55 55 nrDynamicLibRef(0), fLoadLibrary(FALSE), fDisableUnload(FALSE) … … 101 101 { 102 102 if(nrDynamicLibRef == 0) { 103 //NOTE: 104 //Must be called *after* attachprocess, since attachprocess may also 105 //trigger LoadLibrary calls 106 //Those dlls must not be put in front of this dll in the dynamic 107 //dll list; or else the unload order is wrong: 108 //i.e. RPAP3260 loads PNRS3260 in DLL_PROCESS_ATTACH 109 // this means that in ExitProcess, PNRS3260 needs to be removed 110 // first since RPAP3260 depends on it 111 103 112 dlllistmutex.enter(); 104 113 loadLibDlls.Push((ULONG)this); … … 411 420 tlsAttachThread(); //setup TLS (main thread) 412 421 413 if( fSkipEntryCalls ||dllEntryPoint == NULL) {422 if(dllEntryPoint == NULL) { 414 423 dprintf(("attachProcess not required for dll %s", szModule)); 415 424 if(fSetExceptionHandler) { … … 458 467 BOOL rc; 459 468 460 if( fSkipEntryCalls ||dllEntryPoint == NULL) {469 if(dllEntryPoint == NULL) { 461 470 tlsDetachThread(); //destroy TLS (main thread) 462 471 fUnloaded = TRUE; … … 501 510 BOOL rc; 502 511 503 if(fSkip EntryCalls || dllEntryPoint == NULL)512 if(fSkipThreadEntryCalls || dllEntryPoint == NULL) 504 513 return(TRUE); 505 514 … … 519 528 BOOL rc; 520 529 521 if(fSkip EntryCalls || dllEntryPoint == NULL)530 if(fSkipThreadEntryCalls || dllEntryPoint == NULL) 522 531 return(TRUE); 523 532 … … 630 639 631 640 dlllistmutex.leave(); 641 dprintf(("Win32DllBase::deleteDynamicLibs end")); 632 642 } 633 643 //****************************************************************************** … … 800 810 //****************************************************************************** 801 811 //****************************************************************************** 802 void Win32DllBase::setThreadLibraryCalls(BOOL fEnable)803 {804 // if fEnable == true, do call the ATTACH_THREAD, DETACH_THREAD functions805 // if fEnable == false, do not call the ATTACH_THREAD, DETACH_THREAD functions806 fSkipEntryCalls = !fEnable;807 }808 809 //******************************************************************************810 //******************************************************************************811 812 Win32DllBase *Win32DllBase::head = NULL; 812 813 Queue Win32DllBase::loadLibDlls;
Note:
See TracChangeset
for help on using the changeset viewer.