VirtualBox

Changeset 29325 in vbox


Ignore:
Timestamp:
May 11, 2010 10:07:04 AM (15 years ago)
Author:
vboxsync
Message:

Main/Machine: fix regression due to negated bool parameter resulting in incorrec
t locking (dvds/floppies), some cleanup to reduce confusion

Location:
trunk/src/VBox/Main
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/MachineImpl.cpp

    r29309 r29325  
    30723072        /* Apply the normal locking logic to the entire chain. */
    30733073        MediumLockList *pMediumLockList(new MediumLockList());
    3074         rc = diff->createMediumLockList(true, /* fFailIfInaccessible */
    3075                                         true /* fMediumWritable -- really? @todo r=dj*/ ,
     3074        rc = diff->createMediumLockList(true /* fFailIfInaccessible */,
     3075                                        true /* fMediumLockWrite */,
    30763076                                        medium,
    30773077                                        *pMediumLockList);
     
    82038203
    82048204                    MediumLockList *pMediumLockList(new MediumLockList());
    8205                     rc = pMedium->createMediumLockList(true, /* fFailIfInaccessible */
    8206                                                        false,
     8205                    rc = pMedium->createMediumLockList(true /* fFailIfInaccessible */,
     8206                                                       false /* fMediumLockWrite */,
    82078207                                                       NULL,
    82088208                                                       *pMediumLockList);
     
    1081910819        if (pMedium != NULL)
    1082010820        {
    10821             bool fIsReadOnlyImage = (   devType == DeviceType_DVD
    10822                                      || devType == DeviceType_Floppy);
    10823             mrc = pMedium->createMediumLockList(!fIsReadOnlyImage /* fFailIfInaccessible */,
    10824                                                 fIsReadOnlyImage, /* fReadOnly */
     10821            bool fIsReadOnlyImage = (devType == DeviceType_DVD);
     10822            bool fIsVitalImage = (devType == DeviceType_HardDisk);
     10823            mrc = pMedium->createMediumLockList(fIsVitalImage /* fFailIfInaccessible */,
     10824                                                !fIsReadOnlyImage /* fMediumLockWrite */,
    1082510825                                                NULL,
    1082610826                                                *pMediumLockList);
  • trunk/src/VBox/Main/MediumImpl.cpp

    r29311 r29325  
    22022202    MediumLockList *pMediumLockList(new MediumLockList());
    22032203    HRESULT rc = diff->createMediumLockList(true /* fFailIfInaccessible */,
    2204                                             true /* fMediumWritable */,
     2204                                            true /* fMediumLockWrite */,
    22052205                                            this,
    22062206                                            *pMediumLockList);
     
    22932293        MediumLockList *pSourceMediumLockList(new MediumLockList());
    22942294        rc = createMediumLockList(true /* fFailIfInaccessible */,
    2295                                   false /* fMediumWritable */,
     2295                                  false /* fMediumLockWrite */,
    22962296                                  NULL,
    22972297                                  *pSourceMediumLockList);
     
    23052305        MediumLockList *pTargetMediumLockList(new MediumLockList());
    23062306        rc = pTarget->createMediumLockList(true /* fFailIfInaccessible */,
    2307                                            true /* fMediumWritable */,
     2307                                           true /* fMediumLockWrite */,
    23082308                                           pParent,
    23092309                                           *pTargetMediumLockList);
     
    23952395        MediumLockList *pMediumLockList(new MediumLockList());
    23962396        rc = createMediumLockList(true /* fFailIfInaccessible */ ,
    2397                                   true /* fMediumWritable */,
     2397                                  true /* fMediumLockWrite */,
    23982398                                  NULL,
    23992399                                  *pMediumLockList);
     
    24902490        MediumLockList *pMediumLockList(new MediumLockList());
    24912491        rc = createMediumLockList(true /* fFailIfInaccessible */,
    2492                                   true /* fMediumWritable */,
     2492                                  true /* fMediumLockWrite */,
    24932493                                  NULL,
    24942494                                  *pMediumLockList);
     
    31113111 * @note Locks the medium tree for reading.
    31123112 *
    3113  * @param fMediumWritable   Whether to associate a write lock with this medium.
     3113 * @param fFailIfInaccessible Whether to refuse inaccessible media.
     3114 * @param fMediumLockWrite  Whether to associate a write lock with this medium.
    31143115 * @param pToBeParent       Medium which will become the parent of this medium.
    31153116 * @param mediumLockList    Where to store the resulting list.
    31163117 */
    31173118HRESULT Medium::createMediumLockList(bool fFailIfInaccessible,
    3118                                      bool fMediumWritable,
     3119                                     bool fMediumLockWrite,
    31193120                                     Medium *pToBeParent,
    31203121                                     MediumLockList &mediumLockList)
     
    31763177
    31773178        if (pMedium == this)
    3178             mediumLockList.Prepend(pMedium, fMediumWritable);
     3179            mediumLockList.Prepend(pMedium, fMediumLockWrite);
    31793180        else
    31803181            mediumLockList.Prepend(pMedium, false);
     
    39113912        MediumLockList *pMediumLockList(new MediumLockList());
    39123913        rc = createMediumLockList(true /* fFailIfInaccessible */,
    3913                                   true /* fMediumWritable */,
     3914                                  true /* fMediumLockWrite */,
    39143915                                  NULL,
    39153916                                  *pMediumLockList);
     
    42994300        if (fMergeForward)
    43004301            rc = pTarget->createMediumLockList(true /* fFailIfInaccessible */,
    4301                                                true /* fMediumWritable */,
     4302                                               true /* fMediumLockWrite */,
    43024303                                               NULL,
    43034304                                               *aMediumLockList);
    43044305        else
    43054306            rc = createMediumLockList(true /* fFailIfInaccessible */,
    4306                                       false /* fMediumWritable */,
     4307                                      false /* fMediumLockWrite */,
    43074308                                      NULL,
    43084309                                      *aMediumLockList);
     
    50085009    MediumLockList mediumLockList;
    50095010    HRESULT rc = createMediumLockList(true /* fFailIfInaccessible */,
    5010                                       false /* fMediumWritable */,
     5011                                      false /* fMediumLockWrite */,
    50115012                                      this,
    50125013                                      mediumLockList);
  • trunk/src/VBox/Main/include/MediumImpl.h

    r29224 r29325  
    189189
    190190    HRESULT createMediumLockList(bool fFailIfInaccessible,
    191                                  bool fMediumWritable,
     191                                 bool fMediumLockWrite,
    192192                                 Medium *pToBeParent,
    193193                                 MediumLockList &mediumLockList);
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