Changeset 7153 in vbox
- Timestamp:
- Feb 26, 2008 5:19:39 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/libs/xpcom18a4/ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp
r6999 r7153 1613 1613 DConnectInstance *wrapper = (DConnectInstance *) bits; 1614 1614 // make sure we've been sent a valid wrapper 1615 if (!CheckInstanceAndAddRef(wrapper ))1615 if (!CheckInstanceAndAddRef(wrapper, peer)) 1616 1616 { 1617 1617 NS_NOTREACHED("instance wrapper not found"); … … 2059 2059 // the real instance. 2060 2060 DConnectInstance *wrapper = (DConnectInstance *) bits; 2061 if (CheckInstanceAndAddRef(wrapper ))2061 if (CheckInstanceAndAddRef(wrapper, peer)) 2062 2062 { 2063 2063 *xcpt = (nsIException *) wrapper->RealInstance(); … … 3069 3069 3070 3070 PRBool 3071 ipcDConnectService::CheckInstanceAndAddRef(DConnectInstance *wrapper )3071 ipcDConnectService::CheckInstanceAndAddRef(DConnectInstance *wrapper, PRUint32 peer) 3072 3072 { 3073 3073 nsAutoLock lock (mLock); 3074 3074 3075 PRBool result = mInstanceSet.Contains(wrapper);3076 if (result)3075 if (mInstanceSet.Contains(wrapper) && wrapper->Peer() == peer) 3076 { 3077 3077 wrapper->AddRef(); 3078 return result; 3078 return PR_TRUE; 3079 } 3080 return PR_FALSE; 3079 3081 } 3080 3082 … … 3440 3442 3441 3443 // make sure we've been sent a valid wrapper 3442 if (!CheckInstanceAndAddRef(setupQI->instance ))3444 if (!CheckInstanceAndAddRef(setupQI->instance, peer)) 3443 3445 { 3444 3446 NS_NOTREACHED("instance wrapper not found"); … … 3593 3595 nsAutoLock lock (mLock); 3594 3596 3595 // make sure we've been sent a valid wrapper 3596 if (mInstanceSet.Contains(wrapper)) 3597 // make sure we've been sent a valid wrapper from the same peer we created 3598 // this wrapper for 3599 if (mInstanceSet.Contains(wrapper) && wrapper->Peer() == peer) 3597 3600 { 3598 3601 // release the IPC reference from under the lock to ensure atomicity of … … 3613 3616 // a debug warning 3614 3617 LOG(("ipcDConnectService::OnRelease: WARNING: " 3615 "instance wrapper %p not found", wrapper));3618 "instance wrapper %p for peer %d not found", wrapper, peer)); 3616 3619 } 3617 3620 } … … 3637 3640 3638 3641 // make sure we've been sent a valid wrapper 3639 if (!CheckInstanceAndAddRef(wrapper ))3642 if (!CheckInstanceAndAddRef(wrapper, peer)) 3640 3643 { 3641 3644 NS_NOTREACHED("instance wrapper not found");
Note:
See TracChangeset
for help on using the changeset viewer.