Ignore:
Timestamp:
Oct 27, 1999, 8:11:40 PM (26 years ago)
Author:
sandervl
Message:

WinExec rewrite + mmap bugfixes

File:
1 edited

Legend:

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

    r1432 r1481  
    1 /* $Id: mmap.cpp,v 1.19 1999-10-24 22:51:21 sandervl Exp $ */
     1/* $Id: mmap.cpp,v 1.20 1999-10-27 18:11:39 sandervl Exp $ */
    22
    33/*
     
    3232//Global DLL Data
    3333#pragma data_seg(_GLOBALDATA)
    34 Win32MemMapView *Win32MemMapView::mapviews = NULL;
    3534Win32MemMap     *Win32MemMap::memmaps = NULL;
    3635VMutex           globalmapMutex(VMUTEX_SHARED);
    37 VMutex           globalviewMutex(VMUTEX_SHARED);
    3836#pragma data_seg()
     37VMutex           globalviewMutex;
     38Win32MemMapView *Win32MemMapView::mapviews = NULL;
    3939
    4040//******************************************************************************
     
    9595  Win32MemMapView::deleteViews(this); //delete all views of our memory mapped file
    9696
     97  dprintf(("Win32MemMap dtor: deleting view %x %x", pMapping, mSize));
     98
    9799  mapMutex.enter();
    98100  if(lpszMapName) {
     
    404406  }
    405407  globalmapMutex.leave();
    406   dprintf(("Win32MemMap::findMap: couldn't find map %s", lpszName));
     408  if(!map) dprintf(("Win32MemMap::findMap: couldn't find map %s", lpszName));
    407409  return map;
    408410}
     
    517519        return;
    518520
     521  dprintf(("Win32MemMapView dtor: deleting view %x %x", mOffset, mSize));
     522
    519523  if(mfAccess != MEMMAP_ACCESS_READ)
    520524        mParentMap->flushView(mOffset, mSize);
     
    545549void Win32MemMapView::deleteViews(Win32MemMap *map)
    546550{
    547   DWORD processId = GetCurrentProcess();
    548 
    549551  globalviewMutex.enter();
    550552  Win32MemMapView *view = mapviews, *nextview;
     
    553555        while(view) {
    554556                nextview = view->next;
    555                 if(view->getParentMap() == map && view->getProcessId() == processId)
     557                if(view->getParentMap() == map)
    556558                {
    557559                        globalviewMutex.leave();
     
    578580        while(view && (ULONG)view->getViewAddr() <= address) {
    579581                if((ULONG)view->getViewAddr() <= address &&
    580                    (ULONG)view->getViewAddr() + view->getSize() >= address &&
     582                   (ULONG)view->getViewAddr() + view->getSize() > address &&
    581583                   view->getAccessFlags() >= accessType)
    582584                {
     
    590592  }
    591593success:
     594  if(view)
     595        dprintf(("findMapByView %x %x -> %x off %x", address, accessType, view->getViewAddr(), *offset));
     596
    592597  globalviewMutex.leave();
    593598  if(pView) *pView = view;
Note: See TracChangeset for help on using the changeset viewer.