- Timestamp:
- Dec 11, 2013 12:28:07 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 91238
- Location:
- trunk/src/VBox/Main
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/AudioAdapterImpl.h
r49871 r49874 65 65 const ComObjPtr<AudioAdapter> mPeer; 66 66 struct Data; 67 Backupable<Data>mData;67 Data *mData; 68 68 }; 69 69 -
trunk/src/VBox/Main/include/NATEngineImpl.h
r49871 r49874 101 101 HRESULT removeRedirect(const com::Utf8Str &aName); 102 102 103 struct 104 Backupable<Data>mData;103 struct Data; 104 Data *mData; 105 105 bool m_fModified; 106 106 const ComObjPtr<NATEngine> mPeer; -
trunk/src/VBox/Main/src-server/AudioAdapterImpl.cpp
r49871 r49874 27 27 #include "Logging.h" 28 28 29 struct AudioAdapterData 30 { 31 AudioAdapterData() : 32 mEnabled(false), 33 mAudioController(AudioControllerType_AC97), 34 mAudioDriver(AudioDriverType_Null) 35 {} 36 37 BOOL mEnabled; 38 AudioDriverType_T mAudioDriver; 39 AudioControllerType_T mAudioController; 40 }; 41 29 42 struct AudioAdapter::Data 30 43 { 31 Data(); 32 BOOL mEnabled; 33 AudioDriverType_T mAudioDriver; 34 AudioControllerType_T mAudioController; 44 Backupable<AudioAdapterData> m; 35 45 }; 36 46 … … 39 49 40 50 AudioAdapter::AudioAdapter() 41 : mParent(NULL) 51 : mParent(NULL), 52 mData(NULL) 42 53 { 43 54 } … … 90 101 /* mPeer is left null */ 91 102 92 mData.allocate(); 93 mData->mAudioDriver = defaultAudioDriver; 103 mData = new Data(); 104 mData->m.allocate(); 105 mData->m->mAudioDriver = defaultAudioDriver; 94 106 95 107 /* Confirm a successful initialization */ … … 126 138 127 139 AutoReadLock thatLock(aThat COMMA_LOCKVAL_SRC_POS); 128 mData.share (aThat->mData); 140 mData = new Data(); 141 mData->m.share (aThat->mData->m); 129 142 130 143 /* Confirm a successful initialization */ … … 158 171 159 172 AutoReadLock thatLock(aThat COMMA_LOCKVAL_SRC_POS); 160 mData.attachCopy (aThat->mData); 173 mData = new Data(); 174 mData->m.attachCopy (aThat->mData->m); 161 175 162 176 /* Confirm a successful initialization */ … … 179 193 return; 180 194 181 mData.free(); 195 mData->m.free(); 196 delete mData; 197 mData = NULL; 182 198 183 199 unconst(mPeer) = NULL; … … 192 208 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 193 209 194 *aEnabled = mData->m Enabled;210 *aEnabled = mData->m->mEnabled; 195 211 196 212 return S_OK; … … 205 221 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 206 222 207 if (mData->m Enabled != aEnabled)223 if (mData->m->mEnabled != aEnabled) 208 224 { 209 mData .backup();210 mData->m Enabled = aEnabled;225 mData->m.backup(); 226 mData->m->mEnabled = aEnabled; 211 227 212 228 alock.release(); … … 222 238 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 223 239 224 *aAudioDriver = mData->m AudioDriver;240 *aAudioDriver = mData->m->mAudioDriver; 225 241 226 242 return S_OK; … … 238 254 HRESULT rc = S_OK; 239 255 240 if (mData->m AudioDriver != aAudioDriver)256 if (mData->m->mAudioDriver != aAudioDriver) 241 257 { 242 258 if (settings::MachineConfigFile::isAudioDriverAllowedOnThisHost(aAudioDriver)) 243 259 { 244 mData .backup();245 mData->m AudioDriver = aAudioDriver;260 mData->m.backup(); 261 mData->m->mAudioDriver = aAudioDriver; 246 262 alock.release(); 247 263 AutoWriteLock mlock(mParent COMMA_LOCKVAL_SRC_POS); // mParent is const, needs no locking … … 262 278 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 263 279 264 *aAudioController = mData->m AudioController;280 *aAudioController = mData->m->mAudioController; 265 281 266 282 return S_OK; … … 277 293 HRESULT rc = S_OK; 278 294 279 if (mData->m AudioController != aAudioController)295 if (mData->m->mAudioController != aAudioController) 280 296 { 281 297 /* … … 288 304 case AudioControllerType_HDA: 289 305 { 290 mData .backup();291 mData->m AudioController = aAudioController;306 mData->m.backup(); 307 mData->m->mAudioController = aAudioController; 292 308 alock.release(); 293 309 AutoWriteLock mlock(mParent COMMA_LOCKVAL_SRC_POS); // mParent is const, needs no locking … … 311 327 // public methods only for internal purposes 312 328 ///////////////////////////////////////////////////////////////////////////// 313 314 AudioAdapter::Data::Data()315 {316 /* Generic defaults */317 mEnabled = false;318 mAudioController = AudioControllerType_AC97;319 /* Driver defaults to the null audio driver */320 mAudioDriver = AudioDriverType_Null;321 }322 329 323 330 /** … … 347 354 * default to B. */ 348 355 349 mData->m Enabled = data.fEnabled;350 mData->m AudioController = data.controllerType;351 mData->m AudioDriver = data.driverType;356 mData->m->mEnabled = data.fEnabled; 357 mData->m->mAudioController = data.controllerType; 358 mData->m->mAudioDriver = data.driverType; 352 359 353 360 return S_OK; … … 368 375 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 369 376 370 data.fEnabled = !!mData->m Enabled;371 data.controllerType = mData->m AudioController;372 data.driverType = mData->m AudioDriver;377 data.fEnabled = !!mData->m->mEnabled; 378 data.controllerType = mData->m->mAudioController; 379 data.driverType = mData->m->mAudioDriver; 373 380 return S_OK; 374 381 } … … 385 392 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 386 393 387 mData .rollback();394 mData->m.rollback(); 388 395 } 389 396 … … 406 413 AutoMultiWriteLock2 alock(mPeer, this COMMA_LOCKVAL_SRC_POS); 407 414 408 if (mData .isBackedUp())415 if (mData->m.isBackedUp()) 409 416 { 410 mData .commit();417 mData->m.commit(); 411 418 if (mPeer) 412 419 { 413 420 /* attach new data to the peer and reshare it */ 414 mPeer->mData .attach (mData);421 mPeer->mData->m.attach (mData->m); 415 422 } 416 423 } … … 439 446 440 447 /* this will back up current data */ 441 mData .assignCopy(aThat->mData);448 mData->m.assignCopy(aThat->mData->m); 442 449 } 443 450 /* vi: set tabstop=4 shiftwidth=4 expandtab: */ -
trunk/src/VBox/Main/src-server/NATEngineImpl.cpp
r49871 r49874 29 29 #include <VBox/com/array.h> 30 30 31 struct NATEngine ::Data32 { 33 Data() : mMtu(0),31 struct NATEngineData 32 { 33 NATEngineData() : mMtu(0), 34 34 mSockRcv(0), 35 35 mSockSnd(0), … … 61 61 }; 62 62 63 struct NATEngine::Data 64 { 65 Backupable<NATEngineData> m; 66 }; 63 67 64 68 … … 66 70 //////////////////////////////////////////////////////////////////////////////// 67 71 68 NATEngine::NATEngine():mParent(NULL), mAdapter(NULL) {}72 NATEngine::NATEngine():mParent(NULL), mAdapter(NULL), mData(NULL) {} 69 73 NATEngine::~NATEngine(){} 70 74 … … 87 91 autoInitSpan.setSucceeded(); 88 92 m_fModified = false; 89 mData.allocate(); 90 mData->mNetwork.setNull(); 91 mData->mBindIP.setNull(); 93 mData = new Data(); 94 mData->m.allocate(); 95 mData->m->mNetwork.setNull(); 96 mData->m->mBindIP.setNull(); 92 97 unconst(mParent) = aParent; 93 98 unconst(mAdapter) = aAdapter; … … 106 111 AutoReadLock thatLock(aThat COMMA_LOCKVAL_SRC_POS); 107 112 108 mData.share(aThat->mData); 113 mData = new Data(); 114 mData->m.share(aThat->mData->m); 109 115 NATRuleMap::iterator it; 110 116 mNATRules.clear(); … … 132 138 AutoReadLock thatLock(aThat COMMA_LOCKVAL_SRC_POS); 133 139 134 mData.attachCopy(aThat->mData); 140 mData = new Data(); 141 mData->m.attachCopy(aThat->mData->m); 135 142 NATRuleMap::iterator it; 136 143 mNATRules.clear(); … … 153 160 154 161 mNATRules.clear(); 155 mData.free(); 162 mData->m.free(); 163 delete mData; 164 mData = NULL; 156 165 unconst(mPeer) = NULL; 157 166 unconst(mParent) = NULL; … … 177 186 /* we need to check all data to see whether anything will be changed 178 187 * after rollback */ 179 mData .rollback();188 mData->m.rollback(); 180 189 } 181 190 m_fModified = false; … … 197 206 if (m_fModified) 198 207 { 199 mData .commit();208 mData->m.commit(); 200 209 if (mPeer) 201 210 { 202 mPeer->mData .attach(mData);211 mPeer->mData->m.attach(mData->m); 203 212 mPeer->mNATRules.clear(); 204 213 NATRuleMap::iterator it; … … 216 225 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 217 226 if (aMtu) 218 *aMtu = mData->m Mtu;227 *aMtu = mData->m->mMtu; 219 228 if (aSockSnd) 220 *aSockSnd = mData->m SockSnd;229 *aSockSnd = mData->m->mSockSnd; 221 230 if (aSockRcv) 222 *aSockRcv = mData->m SockRcv;231 *aSockRcv = mData->m->mSockRcv; 223 232 if (aTcpWndSnd) 224 *aTcpWndSnd = mData->m TcpSnd;233 *aTcpWndSnd = mData->m->mTcpSnd; 225 234 if (aTcpWndRcv) 226 *aTcpWndRcv = mData->m TcpRcv;235 *aTcpWndRcv = mData->m->mTcpRcv; 227 236 228 237 return S_OK; … … 235 244 || aTcpWndSnd || aTcpWndRcv) 236 245 { 237 mData .backup();246 mData->m.backup(); 238 247 m_fModified = true; 239 248 } 240 249 if (aMtu) 241 mData->m Mtu = aMtu;250 mData->m->mMtu = aMtu; 242 251 if (aSockSnd) 243 mData->m SockSnd = aSockSnd;252 mData->m->mSockSnd = aSockSnd; 244 253 if (aSockRcv) 245 mData->m SockRcv = aSockSnd;254 mData->m->mSockRcv = aSockSnd; 246 255 if (aTcpWndSnd) 247 mData->m TcpSnd = aTcpWndSnd;256 mData->m->mTcpSnd = aTcpWndSnd; 248 257 if (aTcpWndRcv) 249 mData->m TcpRcv = aTcpWndRcv;258 mData->m->mTcpRcv = aTcpWndRcv; 250 259 251 260 if (m_fModified) … … 334 343 if (it == mNATRules.end()) 335 344 return E_INVALIDARG; 336 mData .backup();345 mData->m.backup(); 337 346 settings::NATRule r = it->second; 338 347 Utf8Str strHostIP = r.strHostIP; … … 347 356 mParent->setModified(Machine::IsModified_NetworkAdapters); 348 357 m_fModified = true; 349 mData .commit();358 mData->m.commit(); 350 359 alock.release(); 351 360 mParent->onNATRedirectRuleChange(ulSlot, TRUE, Bstr(aName).raw(), proto, Bstr(strHostIP).raw(), u16HostPort, Bstr(strGuestIP).raw(), u16GuestPort); … … 360 369 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 361 370 HRESULT rc = S_OK; 362 mData->m Network = data.strNetwork;363 mData->m BindIP = data.strBindIP;364 mData->m Mtu = data.u32Mtu;365 mData->m SockSnd = data.u32SockSnd;366 mData->m TcpRcv = data.u32TcpRcv;367 mData->m TcpSnd = data.u32TcpSnd;371 mData->m->mNetwork = data.strNetwork; 372 mData->m->mBindIP = data.strBindIP; 373 mData->m->mMtu = data.u32Mtu; 374 mData->m->mSockSnd = data.u32SockSnd; 375 mData->m->mTcpRcv = data.u32TcpRcv; 376 mData->m->mTcpSnd = data.u32TcpSnd; 368 377 /* TFTP */ 369 mData->m TFTPPrefix = data.strTFTPPrefix;370 mData->m TFTPBootFile = data.strTFTPBootFile;371 mData->m TFTPNextServer = data.strTFTPNextServer;378 mData->m->mTFTPPrefix = data.strTFTPPrefix; 379 mData->m->mTFTPBootFile = data.strTFTPBootFile; 380 mData->m->mTFTPNextServer = data.strTFTPNextServer; 372 381 /* DNS */ 373 mData->m DNSPassDomain = data.fDNSPassDomain;374 mData->m DNSProxy = data.fDNSProxy;375 mData->m DNSUseHostResolver = data.fDNSUseHostResolver;382 mData->m->mDNSPassDomain = data.fDNSPassDomain; 383 mData->m->mDNSProxy = data.fDNSProxy; 384 mData->m->mDNSUseHostResolver = data.fDNSUseHostResolver; 376 385 /* Alias */ 377 mData->m AliasMode = (data.fAliasUseSamePorts ? NATAliasMode_AliasUseSamePorts : 0);378 mData->m AliasMode |= (data.fAliasLog ? NATAliasMode_AliasLog : 0);379 mData->m AliasMode |= (data.fAliasProxyOnly ? NATAliasMode_AliasProxyOnly : 0);386 mData->m->mAliasMode = (data.fAliasUseSamePorts ? NATAliasMode_AliasUseSamePorts : 0); 387 mData->m->mAliasMode |= (data.fAliasLog ? NATAliasMode_AliasLog : 0); 388 mData->m->mAliasMode |= (data.fAliasProxyOnly ? NATAliasMode_AliasProxyOnly : 0); 380 389 /* port forwarding */ 381 390 mNATRules.clear(); … … 397 406 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 398 407 HRESULT rc = S_OK; 399 data.strNetwork = mData->m Network;400 data.strBindIP = mData->m BindIP;401 data.u32Mtu = mData->m Mtu;402 data.u32SockRcv = mData->m SockRcv;403 data.u32SockSnd = mData->m SockSnd;404 data.u32TcpRcv = mData->m TcpRcv;405 data.u32TcpSnd = mData->m TcpSnd;408 data.strNetwork = mData->m->mNetwork; 409 data.strBindIP = mData->m->mBindIP; 410 data.u32Mtu = mData->m->mMtu; 411 data.u32SockRcv = mData->m->mSockRcv; 412 data.u32SockSnd = mData->m->mSockSnd; 413 data.u32TcpRcv = mData->m->mTcpRcv; 414 data.u32TcpSnd = mData->m->mTcpSnd; 406 415 /* TFTP */ 407 data.strTFTPPrefix = mData->m TFTPPrefix;408 data.strTFTPBootFile = mData->m TFTPBootFile;409 data.strTFTPNextServer = mData->m TFTPNextServer;416 data.strTFTPPrefix = mData->m->mTFTPPrefix; 417 data.strTFTPBootFile = mData->m->mTFTPBootFile; 418 data.strTFTPNextServer = mData->m->mTFTPNextServer; 410 419 /* DNS */ 411 data.fDNSPassDomain = !!mData->m DNSPassDomain;412 data.fDNSProxy = !!mData->m DNSProxy;413 data.fDNSUseHostResolver = !!mData->m DNSUseHostResolver;420 data.fDNSPassDomain = !!mData->m->mDNSPassDomain; 421 data.fDNSProxy = !!mData->m->mDNSProxy; 422 data.fDNSUseHostResolver = !!mData->m->mDNSUseHostResolver; 414 423 /* Alias */ 415 data.fAliasLog = !!(mData->m AliasMode & NATAliasMode_AliasLog);416 data.fAliasProxyOnly = !!(mData->m AliasMode & NATAliasMode_AliasProxyOnly);417 data.fAliasUseSamePorts = !!(mData->m AliasMode & NATAliasMode_AliasUseSamePorts);424 data.fAliasLog = !!(mData->m->mAliasMode & NATAliasMode_AliasLog); 425 data.fAliasProxyOnly = !!(mData->m->mAliasMode & NATAliasMode_AliasProxyOnly); 426 data.fAliasUseSamePorts = !!(mData->m->mAliasMode & NATAliasMode_AliasUseSamePorts); 418 427 419 428 for (NATRuleMap::iterator it = mNATRules.begin(); … … 427 436 { 428 437 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 429 if (Bstr(mData->m Network) != aNetwork)430 { 431 mData .backup();432 mData->m Network = aNetwork;438 if (Bstr(mData->m->mNetwork) != aNetwork) 439 { 440 mData->m.backup(); 441 mData->m->mNetwork = aNetwork; 433 442 mParent->setModified(Machine::IsModified_NetworkAdapters); 434 443 m_fModified = true; … … 441 450 { 442 451 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 443 if (!mData->m Network.isEmpty())444 { 445 aNetwork = mData->m Network;446 Log(("Getter (this:%p) Network: %s\n", this, mData->m Network.c_str()));452 if (!mData->m->mNetwork.isEmpty()) 453 { 454 aNetwork = mData->m->mNetwork; 455 Log(("Getter (this:%p) Network: %s\n", this, mData->m->mNetwork.c_str())); 447 456 } 448 457 return S_OK; … … 452 461 { 453 462 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 454 if (Bstr(mData->m BindIP) != aHostIP)455 { 456 mData .backup();457 mData->m BindIP = aHostIP;463 if (Bstr(mData->m->mBindIP) != aHostIP) 464 { 465 mData->m.backup(); 466 mData->m->mBindIP = aHostIP; 458 467 mParent->setModified(Machine::IsModified_NetworkAdapters); 459 468 m_fModified = true; … … 466 475 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 467 476 468 if (!mData->m BindIP.isEmpty())469 aBindIP = mData->m BindIP;477 if (!mData->m->mBindIP.isEmpty()) 478 aBindIP = mData->m->mBindIP; 470 479 return S_OK; 471 480 } … … 474 483 { 475 484 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 476 if (Bstr(mData->m TFTPPrefix) != aTFTPPrefix)477 { 478 mData .backup();479 mData->m TFTPPrefix = aTFTPPrefix;485 if (Bstr(mData->m->mTFTPPrefix) != aTFTPPrefix) 486 { 487 mData->m.backup(); 488 mData->m->mTFTPPrefix = aTFTPPrefix; 480 489 mParent->setModified(Machine::IsModified_NetworkAdapters); 481 490 m_fModified = true; … … 489 498 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 490 499 491 if (!mData->m TFTPPrefix.isEmpty())492 { 493 aTFTPPrefix = mData->m TFTPPrefix;494 Log(("Getter (this:%p) TFTPPrefix: %s\n", this, mData->m TFTPPrefix.c_str()));500 if (!mData->m->mTFTPPrefix.isEmpty()) 501 { 502 aTFTPPrefix = mData->m->mTFTPPrefix; 503 Log(("Getter (this:%p) TFTPPrefix: %s\n", this, mData->m->mTFTPPrefix.c_str())); 495 504 } 496 505 return S_OK; … … 500 509 { 501 510 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 502 if (Bstr(mData->m TFTPBootFile) != aTFTPBootFile)503 { 504 mData .backup();505 mData->m TFTPBootFile = aTFTPBootFile;511 if (Bstr(mData->m->mTFTPBootFile) != aTFTPBootFile) 512 { 513 mData->m.backup(); 514 mData->m->mTFTPBootFile = aTFTPBootFile; 506 515 mParent->setModified(Machine::IsModified_NetworkAdapters); 507 516 m_fModified = true; … … 514 523 { 515 524 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 516 if (!mData->m TFTPBootFile.isEmpty())517 { 518 aTFTPBootFile = mData->m TFTPBootFile;519 Log(("Getter (this:%p) BootFile: %s\n", this, mData->m TFTPBootFile.c_str()));525 if (!mData->m->mTFTPBootFile.isEmpty()) 526 { 527 aTFTPBootFile = mData->m->mTFTPBootFile; 528 Log(("Getter (this:%p) BootFile: %s\n", this, mData->m->mTFTPBootFile.c_str())); 520 529 } 521 530 return S_OK; … … 526 535 { 527 536 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 528 if (Bstr(mData->m TFTPNextServer) != aTFTPNextServer)529 { 530 mData .backup();531 mData->m TFTPNextServer = aTFTPNextServer;537 if (Bstr(mData->m->mTFTPNextServer) != aTFTPNextServer) 538 { 539 mData->m.backup(); 540 mData->m->mTFTPNextServer = aTFTPNextServer; 532 541 mParent->setModified(Machine::IsModified_NetworkAdapters); 533 542 m_fModified = true; … … 539 548 { 540 549 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 541 if (!mData->m TFTPNextServer.isEmpty())542 { 543 aTFTPNextServer = mData->m TFTPNextServer;544 Log(("Getter (this:%p) NextServer: %s\n", this, mData->m TFTPNextServer.c_str()));550 if (!mData->m->mTFTPNextServer.isEmpty()) 551 { 552 aTFTPNextServer = mData->m->mTFTPNextServer; 553 Log(("Getter (this:%p) NextServer: %s\n", this, mData->m->mTFTPNextServer.c_str())); 545 554 } 546 555 return S_OK; … … 552 561 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 553 562 554 if (mData->m DNSPassDomain != aDNSPassDomain)555 { 556 mData .backup();557 mData->m DNSPassDomain = aDNSPassDomain;563 if (mData->m->mDNSPassDomain != aDNSPassDomain) 564 { 565 mData->m.backup(); 566 mData->m->mDNSPassDomain = aDNSPassDomain; 558 567 mParent->setModified(Machine::IsModified_NetworkAdapters); 559 568 m_fModified = true; … … 565 574 { 566 575 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 567 *aDNSPassDomain = mData->m DNSPassDomain;576 *aDNSPassDomain = mData->m->mDNSPassDomain; 568 577 return S_OK; 569 578 } … … 574 583 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 575 584 576 if (mData->m DNSProxy != aDNSProxy)577 { 578 mData .backup();579 mData->m DNSProxy = aDNSProxy;585 if (mData->m->mDNSProxy != aDNSProxy) 586 { 587 mData->m.backup(); 588 mData->m->mDNSProxy = aDNSProxy; 580 589 mParent->setModified(Machine::IsModified_NetworkAdapters); 581 590 m_fModified = true; … … 587 596 { 588 597 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 589 *aDNSProxy = mData->m DNSProxy;598 *aDNSProxy = mData->m->mDNSProxy; 590 599 return S_OK; 591 600 } … … 595 604 { 596 605 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 597 *aDNSUseHostResolver = mData->m DNSUseHostResolver;606 *aDNSUseHostResolver = mData->m->mDNSUseHostResolver; 598 607 return S_OK; 599 608 } … … 602 611 HRESULT NATEngine::setDNSUseHostResolver(BOOL aDNSUseHostResolver) 603 612 { 604 if (mData->m DNSUseHostResolver != aDNSUseHostResolver)605 { 606 mData .backup();607 mData->m DNSUseHostResolver = aDNSUseHostResolver;613 if (mData->m->mDNSUseHostResolver != aDNSUseHostResolver) 614 { 615 mData->m.backup(); 616 mData->m->mDNSUseHostResolver = aDNSUseHostResolver; 608 617 mParent->setModified(Machine::IsModified_NetworkAdapters); 609 618 m_fModified = true; … … 616 625 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 617 626 618 if (mData->m AliasMode != aAliasMode)619 { 620 mData .backup();621 mData->m AliasMode = aAliasMode;627 if (mData->m->mAliasMode != aAliasMode) 628 { 629 mData->m.backup(); 630 mData->m->mAliasMode = aAliasMode; 622 631 mParent->setModified(Machine::IsModified_NetworkAdapters); 623 632 m_fModified = true; … … 629 638 { 630 639 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 631 *aAliasMode = mData->m AliasMode;632 return S_OK; 633 } 634 640 *aAliasMode = mData->m->mAliasMode; 641 return S_OK; 642 } 643
Note:
See TracChangeset
for help on using the changeset viewer.