Ignore:
Timestamp:
Mar 9, 2000, 8:03:23 PM (25 years ago)
Author:
sandervl
Message:

Dll dependency changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/winexebase.cpp

    r3005 r3059  
    1 /* $Id: winexebase.cpp,v 1.6 2000-03-04 19:52:36 sandervl Exp $ */
     1/* $Id: winexebase.cpp,v 1.7 2000-03-09 19:03:21 sandervl Exp $ */
    22
    33/*
     
    5959Win32ExeBase::~Win32ExeBase()
    6060{
    61   //First delete all dlls that were loaded by the exe or dlls
    62   //Then delete all dlls loaded by LoadLibrary (to avoid that we
    63   //delete some dlls before the dll, that loaded it, is destroyed)
     61 QueueItem    *item;
     62 Win32DllBase *dll;
     63
     64  //First delete all dlls loaded by LoadLibrary
     65  //Then delete all dlls that were loaded by the exe
     66  //(NOTE: This is what NT does; first delete loadlib dlls in LIFO order and
     67  //       then the exe dlls)
     68  Win32DllBase::deleteDynamicLibs();
     69
     70  dprintf(("Win32ExeBase::~Win32ExeBase"));
     71#ifdef DEBUG_ENABLELOG_LEVEL2
     72  item = loadedDlls.Head();
     73  dll = (Win32DllBase *)loadedDlls.getItem(item);
     74  dll->printListOfDlls();
     75#endif
     76
     77  item = loadedDlls.Head();
     78  while(item) {
     79        dll = (Win32DllBase *)loadedDlls.getItem(item);
     80        if(dll == NULL) {
     81                dprintf(("ERROR: Win32ExeBase::~Win32ExeBase: dll item == NULL!!"));
     82                DebugInt3();
     83                break;
     84        }
     85        dll->Release();
     86        item = loadedDlls.getNext(item);
     87  }
     88
    6489  Win32DllBase::deleteAll();
    65   Win32DllBase::deleteAll(TRUE);
    6690
    6791  WinExe = NULL;
Note: See TracChangeset for help on using the changeset viewer.