VirtualBox

Changeset 20772 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Jun 22, 2009 12:39:35 PM (15 years ago)
Author:
vboxsync
Message:

More safety

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r20762 r20772  
    435435                            if (pCur->CTX_SUFF(pfnHandler))
    436436                            {
     437#  ifdef IN_RING0
     438                                PFNPGMR0PHYSHANDLER pfnHandler = pCur->CTX_SUFF(pfnHandler);
     439#  else
     440                                PFNPGMRCPHYSHANDLER pfnHandler = pCur->CTX_SUFF(pfnHandler);
     441#  endif
     442                                void *pvUser = pCur->CTX_SUFF(pvUser);
     443
    437444                                STAM_PROFILE_START(&pCur->Stat, h);
    438445                                pgmUnlock(pVM); /* @todo: Not entirely safe. */
    439                                 rc = pCur->CTX_SUFF(pfnHandler)(pVM, uErr, pRegFrame, pvFault, GCPhysFault, pCur->CTX_SUFF(pvUser));
     446                                rc = pfnHandler(pVM, uErr, pRegFrame, pvFault, GCPhysFault, pvUser);
    440447                                pgmLock(pVM);
    441                                 STAM_PROFILE_STOP(&pCur->Stat, h);
     448#  ifdef VBOX_WITH_STATISTICS
     449                                pCur = (PPGMPHYSHANDLER)RTAvlroGCPhysRangeGet(&pVM->pgm.s.CTX_SUFF(pTrees)->PhysHandlers, GCPhysFault);
     450                                if (pCur)
     451                                    STAM_PROFILE_STOP(&pCur->Stat, h);
     452#  else
     453                                pCur = NULL;    /* might be invalid by now. */
     454#  endif
     455                               
    442456                            }
    443457                            else
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette