diff --git a/Sources/Plasma/CoreLib/hsRefCnt.h b/Sources/Plasma/CoreLib/hsRefCnt.h index be374550..83e22277 100644 --- a/Sources/Plasma/CoreLib/hsRefCnt.h +++ b/Sources/Plasma/CoreLib/hsRefCnt.h @@ -124,6 +124,7 @@ public: if (fObj) fObj->UnRef(); fObj = nullptr; + return *this; } bool operator==(const hsRef<_Ref> &other) const { return fObj == other.fObj; } diff --git a/Sources/Plasma/FeatureLib/pfPython/cyAvatar.cpp b/Sources/Plasma/FeatureLib/pfPython/cyAvatar.cpp index 7d4bcea6..6d8ef5cb 100644 --- a/Sources/Plasma/FeatureLib/pfPython/cyAvatar.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/cyAvatar.cpp @@ -1670,11 +1670,10 @@ void cyAvatar::ChangeAvatar(const char* genderName) wchar_t wStr[MAX_PATH]; StrToUnicode(wStr, genderName, arrsize(wStr)); - RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef(); + hsRef rvnPlr = VaultGetPlayerNode(); if (rvnPlr) { VaultPlayerNode plr(rvnPlr); plr.SetAvatarShapeName(wStr); - rvnPlr->UnRef(); } #endif } @@ -1691,11 +1690,10 @@ void cyAvatar::ChangePlayerName(const char* playerName) wchar_t wStr[MAX_PATH]; StrToUnicode(wStr, playerName, arrsize(wStr)); - RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef(); + hsRef rvnPlr = VaultGetPlayerNode(); if (rvnPlr) { VaultPlayerNode plr(rvnPlr); plr.SetPlayerName(wStr); - rvnPlr->UnRef(); } } diff --git a/Sources/Plasma/FeatureLib/pfPython/cyMisc.cpp b/Sources/Plasma/FeatureLib/pfPython/cyMisc.cpp index cc7eaebc..1482c945 100644 --- a/Sources/Plasma/FeatureLib/pfPython/cyMisc.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/cyMisc.cpp @@ -2471,10 +2471,9 @@ int cyMisc::GetKILevel() wchar_t wStr[MAX_PATH]; StrToUnicode(wStr, pfKIMsg::kChronicleKILevel, arrsize(wStr)); - if (RelVaultNode * rvn = VaultFindChronicleEntryIncRef(wStr)) { + if (hsRef rvn = VaultFindChronicleEntry(wStr)) { VaultChronicleNode chron(rvn); result = wcstol(chron.GetEntryValue(), nil, 0); - rvn->UnRef(); } return result; @@ -2880,7 +2879,7 @@ void cyMisc::SetBehaviorNetFlags(pyKey & behKey, bool netForce, bool netProp) void cyMisc::SendFriendInvite(const wchar_t email[], const wchar_t toName[]) { - if (RelVaultNode* pNode = VaultGetPlayerNodeIncRef()) + if (hsRef pNode = VaultGetPlayerNode()) { VaultPlayerNode player(pNode); plUUID inviteUuid = player.GetInviteUuid(); @@ -2893,7 +2892,6 @@ void cyMisc::SendFriendInvite(const wchar_t email[], const wchar_t toName[]) } NetCommSendFriendInvite(email, toName, inviteUuid); - pNode->UnRef(); } } diff --git a/Sources/Plasma/FeatureLib/pfPython/plPythonFileMod.cpp b/Sources/Plasma/FeatureLib/pfPython/plPythonFileMod.cpp index 609744b4..d56fe9d9 100644 --- a/Sources/Plasma/FeatureLib/pfPython/plPythonFileMod.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/plPythonFileMod.cpp @@ -2079,11 +2079,10 @@ bool plPythonFileMod::MsgReceive(plMessage* msg) case plVaultNotifyMsg::kRegisteredVisitAge: case plVaultNotifyMsg::kUnRegisteredOwnedAge: case plVaultNotifyMsg::kUnRegisteredVisitAge: { - if (RelVaultNode * rvn = VaultGetNodeIncRef(vaultNotifyMsg->GetArgs()->GetInt(plNetCommon::VaultTaskArgs::kAgeLinkNode))) { + if (hsRef rvn = VaultGetNode(vaultNotifyMsg->GetArgs()->GetInt(plNetCommon::VaultTaskArgs::kAgeLinkNode))) { Py_DECREF(ptuple); ptuple = PyTuple_New(1); PyTuple_SetItem(ptuple, 0, pyVaultAgeLinkNode::New(rvn)); - rvn->UnRef(); } } break; diff --git a/Sources/Plasma/FeatureLib/pfPython/pyAgeVault.cpp b/Sources/Plasma/FeatureLib/pfPython/pyAgeVault.cpp index 883656b6..859d5789 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyAgeVault.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyAgeVault.cpp @@ -81,12 +81,9 @@ pyAgeVault::~pyAgeVault() { PyObject* pyAgeVault::GetAgeInfo() { - RelVaultNode * rvn = VaultGetAgeInfoNodeIncRef(); - if (rvn) { - PyObject * result = pyVaultAgeInfoNode::New(rvn); - rvn->UnRef(); - return result; - } + hsRef rvn = VaultGetAgeInfoNode(); + if (rvn) + return pyVaultAgeInfoNode::New(rvn); // just return a None object PYTHON_RETURN_NONE; @@ -94,12 +91,9 @@ PyObject* pyAgeVault::GetAgeInfo() PyObject* pyAgeVault::GetAgeDevicesFolder( void ) { - RelVaultNode * rvn = VaultGetAgeDevicesFolderIncRef(); - if (rvn) { - PyObject * result = pyVaultFolderNode::New(rvn); - rvn->UnRef(); - return result; - } + hsRef rvn = VaultGetAgeDevicesFolder(); + if (rvn) + return pyVaultFolderNode::New(rvn); // just return a None object PYTHON_RETURN_NONE; @@ -107,12 +101,9 @@ PyObject* pyAgeVault::GetAgeDevicesFolder( void ) PyObject* pyAgeVault::GetSubAgesFolder( void ) { - RelVaultNode * rvn = VaultGetAgeSubAgesFolderIncRef(); - if (rvn) { - PyObject * result = pyVaultFolderNode::New(rvn); - rvn->UnRef(); - return result; - } + hsRef rvn = VaultGetAgeSubAgesFolder(); + if (rvn) + return pyVaultFolderNode::New(rvn); // just return a None object PYTHON_RETURN_NONE; @@ -120,12 +111,9 @@ PyObject* pyAgeVault::GetSubAgesFolder( void ) PyObject* pyAgeVault::GetChronicleFolder( void ) { - RelVaultNode * rvn = VaultGetAgeChronicleFolderIncRef(); - if (rvn) { - PyObject * result = pyVaultFolderNode::New(rvn); - rvn->UnRef(); - return result; - } + hsRef rvn = VaultGetAgeChronicleFolder(); + if (rvn) + return pyVaultFolderNode::New(rvn); // just return a None object PYTHON_RETURN_NONE; @@ -133,12 +121,9 @@ PyObject* pyAgeVault::GetChronicleFolder( void ) PyObject* pyAgeVault::GetBookshelfFolder ( void ) { - RelVaultNode * rvn = VaultAgeGetBookshelfFolderIncRef(); - if (rvn) { - PyObject * result = pyVaultFolderNode::New(rvn); - rvn->UnRef(); - return result; - } + hsRef rvn = VaultAgeGetBookshelfFolder(); + if (rvn) + return pyVaultFolderNode::New(rvn); // just return a None object PYTHON_RETURN_NONE; @@ -146,12 +131,9 @@ PyObject* pyAgeVault::GetBookshelfFolder ( void ) PyObject* pyAgeVault::GetPeopleIKnowAboutFolder( void ) { - RelVaultNode * rvn = VaultGetAgePeopleIKnowAboutFolderIncRef(); - if (rvn) { - PyObject * result = pyVaultFolderNode::New(rvn); - rvn->UnRef(); - return result; - } + hsRef rvn = VaultGetAgePeopleIKnowAboutFolder(); + if (rvn) + return pyVaultFolderNode::New(rvn); // just return a None object PYTHON_RETURN_NONE; @@ -160,12 +142,9 @@ PyObject* pyAgeVault::GetPeopleIKnowAboutFolder( void ) PyObject* pyAgeVault::GetPublicAgesFolder(void) { - RelVaultNode * rvn = VaultGetAgePublicAgesFolderIncRef(); - if (rvn) { - PyObject * result = pyVaultFolderNode::New(rvn); - rvn->UnRef(); - return result; - } + hsRef rvn = VaultGetAgePublicAgesFolder(); + if (rvn) + return pyVaultFolderNode::New(rvn); // just return a None object PYTHON_RETURN_NONE; @@ -173,12 +152,9 @@ PyObject* pyAgeVault::GetPublicAgesFolder(void) PyObject* pyAgeVault::GetSubAgeLink( const pyAgeInfoStruct & info ) { - RelVaultNode * rvn = VaultFindAgeSubAgeLinkIncRef(info.GetAgeInfo()); - if (rvn) { - PyObject * result = pyVaultAgeLinkNode::New(rvn); - rvn->UnRef(); - return result; - } + hsRef rvn = VaultFindAgeSubAgeLink(info.GetAgeInfo()); + if (rvn) + return pyVaultAgeLinkNode::New(rvn); // just return a None object PYTHON_RETURN_NONE; @@ -186,12 +162,10 @@ PyObject* pyAgeVault::GetSubAgeLink( const pyAgeInfoStruct & info ) plUUID pyAgeVault::GetAgeGuid( void ) { - RelVaultNode * rvn = VaultGetAgeInfoNodeIncRef(); + hsRef rvn = VaultGetAgeInfoNode(); if (rvn) { VaultAgeInfoNode ageInfo(rvn); - plUUID uuid = ageInfo.GetAgeInstanceGuid(); - rvn->UnRef(); - return uuid; + return ageInfo.GetAgeInstanceGuid(); } return kNilUuid; } @@ -204,11 +178,8 @@ PyObject* pyAgeVault::FindChronicleEntry( const char * entryName ) wchar_t wEntryName[kMaxVaultNodeStringLength]; StrToUnicode(wEntryName, entryName, arrsize(wEntryName)); - if (RelVaultNode * rvn = VaultFindAgeChronicleEntryIncRef(wEntryName)) { - PyObject * result = pyVaultChronicleNode::New(rvn); - rvn->UnRef(); - return result; - } + if (hsRef rvn = VaultFindAgeChronicleEntry(wEntryName)) + return pyVaultChronicleNode::New(rvn); // just return a None object PYTHON_RETURN_NONE; @@ -235,10 +206,8 @@ void pyAgeVault::AddDevice( const char * deviceName, PyObject * cbObject, uint32 wchar_t wStr[MAX_PATH]; StrToUnicode(wStr, deviceName, arrsize(wStr)); - if (RelVaultNode * rvn = VaultAgeAddDeviceAndWaitIncRef(wStr)) { + if (hsRef rvn = VaultAgeAddDeviceAndWait(wStr)) cb->SetNode(rvn); - rvn->UnRef(); - } cb->VaultOperationComplete( cbContext, cb->GetNode() ? hsOK : hsFail); // cbHolder deletes itself here. } @@ -266,11 +235,8 @@ PyObject * pyAgeVault::GetDevice( const char * deviceName ) wchar_t wStr[MAX_PATH]; StrToUnicode(wStr, deviceName, arrsize(wStr)); - if (RelVaultNode * rvn = VaultAgeGetDeviceIncRef(wStr)) { - PyObject * result = pyVaultTextNoteNode::New(rvn); - rvn->UnRef(); - return result; - } + if (hsRef rvn = VaultAgeGetDevice(wStr)) + return pyVaultTextNoteNode::New(rvn); PYTHON_RETURN_NONE; } @@ -286,10 +252,8 @@ void pyAgeVault::SetDeviceInbox( const char * deviceName, const char * inboxName wchar_t wInb[MAX_PATH]; StrToUnicode(wInb, inboxName, arrsize(wInb)); - if (RelVaultNode * rvn = VaultAgeSetDeviceInboxAndWaitIncRef(wDev, wInb)) { + if (hsRef rvn = VaultAgeSetDeviceInboxAndWait(wDev, wInb)) cb->SetNode(rvn); - rvn->UnRef(); - } cb->VaultOperationComplete( cbContext, cb->GetNode() ? hsOK : hsFail ); // cbHolder deletes itself here. } @@ -299,11 +263,8 @@ PyObject * pyAgeVault::GetDeviceInbox( const char * deviceName ) wchar_t wStr[MAX_PATH]; StrToUnicode(wStr, deviceName, arrsize(wStr)); - if (RelVaultNode * rvn = VaultAgeGetDeviceInboxIncRef(wStr)) { - PyObject * result = pyVaultTextNoteNode::New(rvn); - rvn->UnRef(); - return result; - } + if (hsRef rvn = VaultAgeGetDeviceInbox(wStr)) + return pyVaultTextNoteNode::New(rvn); PYTHON_RETURN_NONE; } @@ -331,14 +292,10 @@ void pyAgeVault::UpdateAgeSDL( pySDLStateDataRecord & pyrec ) PyObject* pyAgeVault::FindNode( pyVaultNode* templateNode ) const { - if (RelVaultNode * rvn = VaultGetAgeNodeIncRef()) { - RelVaultNode * find = rvn->GetChildNodeIncRef(templateNode->fNode, 1); - rvn->UnRef(); - if (find) { - PyObject * result = pyVaultNode::New(find); - find->UnRef(); - return result; - } + if (hsRef rvn = VaultGetAgeNode()) { + hsRef find = rvn->GetChildNode(templateNode->fNode, 1); + if (find) + return pyVaultNode::New(find); } PYTHON_RETURN_NONE; diff --git a/Sources/Plasma/FeatureLib/pfPython/pyDniInfoSource.cpp b/Sources/Plasma/FeatureLib/pfPython/pyDniInfoSource.cpp index ebd15ebc..154adb67 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyDniInfoSource.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyDniInfoSource.cpp @@ -71,7 +71,7 @@ PyObject* pyDniInfoSource::GetAgeCoords( void ) uint32_t pyDniInfoSource::GetAgeTime( void ) const { - RelVaultNode * node = VaultGetAgeInfoNodeIncRef(); + hsRef node = VaultGetAgeInfoNode(); if (!node) return 0; @@ -81,34 +81,29 @@ uint32_t pyDniInfoSource::GetAgeTime( void ) const result = (uint32_t)utime->GetSecs(); else result = 0; - node->UnRef(); return result; } const char * pyDniInfoSource::GetAgeName( void ) const { - RelVaultNode * node = VaultGetAgeInfoNodeIncRef(); + hsRef node = VaultGetAgeInfoNode(); if (!node) return ""; VaultAgeInfoNode ageInfo(node); fAgeName = StrDupToAnsi(ageInfo.GetAgeInstanceName()); - node->UnRef(); return fAgeName; } plUUID pyDniInfoSource::GetAgeGuid( void ) const { - if (RelVaultNode * node = VaultGetAgeInfoNodeIncRef()) + if (hsRef node = VaultGetAgeInfoNode()) { VaultAgeInfoNode ageInfo(node); - plUUID uuid = ageInfo.GetAgeInstanceGuid(); - node->UnRef(); - - return uuid; + return ageInfo.GetAgeInstanceGuid(); } return kNilUuid; diff --git a/Sources/Plasma/FeatureLib/pfPython/pyGameScore.cpp b/Sources/Plasma/FeatureLib/pfPython/pyGameScore.cpp index 01a92ee6..d0b625b1 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyGameScore.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyGameScore.cpp @@ -125,11 +125,10 @@ void pyGameScore::SetPoints(int32_t numPoints, pyKey& rcvr) void pyGameScore::CreateAgeScore(const plString& name, uint32_t type, int32_t points, pyKey& rcvr) { - if (RelVaultNode* ageInfo = VaultGetAgeInfoNodeIncRef()) + if (hsRef ageInfo = VaultGetAgeInfoNode()) { uint32_t ownerId = ageInfo->GetNodeId(); pfGameScore::Create(ownerId, name, type, points, rcvr.getKey()); - ageInfo->UnRef(); } else hsAssert(false, "Age has no vault... Need to rewrite score python script?"); } @@ -141,11 +140,10 @@ void pyGameScore::CreateGlobalScore(const plString& name, uint32_t type, int32_t void pyGameScore::CreatePlayerScore(const plString& name, uint32_t type, int32_t points, pyKey& rcvr) { - if (RelVaultNode* node = VaultGetPlayerInfoNodeIncRef()) + if (hsRef node = VaultGetPlayerInfoNode()) { uint32_t ownerId = node->GetNodeId(); pfGameScore::Create(ownerId, name, type, points, rcvr.getKey()); - node->UnRef(); } else hsAssert(false, "No PlayerInfo node... Need to rewrite python script?"); } @@ -157,11 +155,10 @@ void pyGameScore::CreateScore(uint32_t ownerId, const plString& name, uint32_t t void pyGameScore::FindAgeScores(const plString& name, pyKey& rcvr) { - if (RelVaultNode* ageInfo = VaultGetAgeInfoNodeIncRef()) + if (hsRef ageInfo = VaultGetAgeInfoNode()) { uint32_t ownerId = ageInfo->GetNodeId(); pfGameScore::Find(ownerId, name, rcvr.getKey()); - ageInfo->UnRef(); } else hsAssert(false, "Age has no vault... Need to rewrite score python script?"); } @@ -173,11 +170,10 @@ void pyGameScore::FindGlobalScores(const plString& name, pyKey& rcvr) void pyGameScore::FindPlayerScores(const plString& name, pyKey& rcvr) { - if (RelVaultNode* node = VaultGetPlayerInfoNodeIncRef()) + if (hsRef node = VaultGetPlayerInfoNode()) { uint32_t ownerId = node->GetNodeId(); pfGameScore::Find(ownerId, name, rcvr.getKey()); - node->UnRef(); } else hsAssert(false, "No PlayerInfo node.. Need to rewrite python script?"); diff --git a/Sources/Plasma/FeatureLib/pfPython/pyVault.cpp b/Sources/Plasma/FeatureLib/pfPython/pyVault.cpp index f46103c8..a54506bd 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyVault.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyVault.cpp @@ -81,12 +81,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com //============================================================================ static PyObject * GetFolder (unsigned folderType) { PyObject * result = nil; - if (RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef()) { - if (RelVaultNode * rvnFldr = rvnPlr->GetChildFolderNodeIncRef(folderType, 1)) { + if (hsRef rvnPlr = VaultGetPlayerNode()) { + if (hsRef rvnFldr = rvnPlr->GetChildFolderNode(folderType, 1)) result = pyVaultFolderNode::New(rvnFldr); - rvnFldr->UnRef(); - } - rvnPlr->UnRef(); } return result; @@ -95,12 +92,9 @@ static PyObject * GetFolder (unsigned folderType) { //============================================================================ static PyObject * GetPlayerInfoList (unsigned folderType) { PyObject * result = nil; - if (RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef()) { - if (RelVaultNode * rvnFldr = rvnPlr->GetChildPlayerInfoListNodeIncRef(folderType, 1)) { + if (hsRef rvnPlr = VaultGetPlayerNode()) { + if (hsRef rvnFldr = rvnPlr->GetChildPlayerInfoListNode(folderType, 1)) result = pyVaultPlayerInfoListNode::New(rvnFldr); - rvnFldr->UnRef(); - } - rvnPlr->UnRef(); } return result; @@ -109,12 +103,9 @@ static PyObject * GetPlayerInfoList (unsigned folderType) { //============================================================================ static PyObject * GetAgeInfoList (unsigned folderType) { PyObject * result = nil; - if (RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef()) { - if (RelVaultNode * rvnFldr = rvnPlr->GetChildAgeInfoListNodeIncRef(folderType, 1)) { + if (hsRef rvnPlr = VaultGetPlayerNode()) { + if (hsRef rvnFldr = rvnPlr->GetChildAgeInfoListNode(folderType, 1)) result = pyVaultAgeInfoListNode::New(rvnFldr); - rvnFldr->UnRef(); - } - rvnPlr->UnRef(); } return result; @@ -124,12 +115,9 @@ static PyObject * GetAgeInfoList (unsigned folderType) { PyObject* pyVault::GetPlayerInfo() { PyObject * result = nil; - if (RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef()) { - if (RelVaultNode * rvnPlrInfo = rvnPlr->GetChildNodeIncRef(plVault::kNodeType_PlayerInfo, 1)) { + if (hsRef rvnPlr = VaultGetPlayerNode()) { + if (hsRef rvnPlrInfo = rvnPlr->GetChildNode(plVault::kNodeType_PlayerInfo, 1)) result = pyVaultPlayerInfoNode::New(rvnPlrInfo); - rvnPlrInfo->UnRef(); - } - rvnPlr->UnRef(); } // just return an empty node @@ -208,12 +196,12 @@ PyObject* pyVault::GetKIUsage(void) uint32_t markerGames = 0; for (;;) { - RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef(); + hsRef rvnPlr = VaultGetPlayerNode(); if (!rvnPlr) break; for (;;) { - RelVaultNode * rvnAgeJrnlz = rvnPlr->GetChildFolderNodeIncRef(plVault::kAgeJournalsFolder, 1); + hsRef rvnAgeJrnlz = rvnPlr->GetChildFolderNode(plVault::kAgeJournalsFolder, 1); if (!rvnAgeJrnlz) break; @@ -234,10 +222,8 @@ PyObject* pyVault::GetKIUsage(void) rvn->UnRef(); } - rvnAgeJrnlz->UnRef(); break; } - rvnPlr->UnRef(); break; } @@ -303,11 +289,8 @@ PyObject* pyVault::GetLinkToMyNeighborhood() const plAgeInfoStruct info; info.SetAgeFilename(kNeighborhoodAgeFilename); - if (RelVaultNode * rvn = VaultGetOwnedAgeLinkIncRef(&info)) { - PyObject * result = pyVaultAgeLinkNode::New(rvn); - rvn->UnRef(); - return result; - } + if (hsRef rvn = VaultGetOwnedAgeLink(&info)) + return pyVaultAgeLinkNode::New(rvn); PYTHON_RETURN_NONE; } @@ -317,11 +300,8 @@ PyObject* pyVault::GetLinkToCity() const plAgeInfoStruct info; info.SetAgeFilename(kCityAgeFilename); - if (RelVaultNode * rvn = VaultGetOwnedAgeLinkIncRef(&info)) { - PyObject * result = pyVaultAgeLinkNode::New(rvn); - rvn->UnRef(); - return result; - } + if (hsRef rvn = VaultGetOwnedAgeLink(&info)) + return pyVaultAgeLinkNode::New(rvn); PYTHON_RETURN_NONE; } @@ -330,11 +310,8 @@ PyObject* pyVault::GetLinkToCity() const // Owned ages PyObject* pyVault::GetOwnedAgeLink( const pyAgeInfoStruct & info ) { - if (RelVaultNode * rvnLink = VaultGetOwnedAgeLinkIncRef(info.GetAgeInfo())) { - PyObject * result = pyVaultAgeLinkNode::New(rvnLink); - rvnLink->UnRef(); - return result; - } + if (hsRef rvnLink = VaultGetOwnedAgeLink(info.GetAgeInfo())) + return pyVaultAgeLinkNode::New(rvnLink); // just return a None object PYTHON_RETURN_NONE; @@ -343,11 +320,8 @@ PyObject* pyVault::GetOwnedAgeLink( const pyAgeInfoStruct & info ) // Visit ages PyObject* pyVault::GetVisitAgeLink( const pyAgeInfoStruct & info) { - if (RelVaultNode * rvnLink = VaultGetVisitAgeLinkIncRef(info.GetAgeInfo())) { - PyObject * result = pyVaultAgeLinkNode::New(rvnLink); - rvnLink->UnRef(); - return result; - } + if (hsRef rvnLink = VaultGetVisitAgeLink(info.GetAgeInfo())) + return pyVaultAgeLinkNode::New(rvnLink); // just return a None object PYTHON_RETURN_NONE; @@ -361,11 +335,8 @@ PyObject* pyVault::FindChronicleEntry( const char * entryName ) wchar_t wEntryName[kMaxVaultNodeStringLength]; StrToUnicode(wEntryName, entryName, arrsize(wEntryName)); - if (RelVaultNode * rvn = VaultFindChronicleEntryIncRef(wEntryName)) { - PyObject * result = pyVaultChronicleNode::New(rvn); - rvn->UnRef(); - return result; - } + if (hsRef rvn = VaultFindChronicleEntry(wEntryName)) + return pyVaultChronicleNode::New(rvn); // just return a None object PYTHON_RETURN_NONE; @@ -441,10 +412,9 @@ PyObject* pyVault::GetInviteFolder() PyObject* pyVault::GetPsnlAgeSDL() const { PyObject * result = nil; - NetVaultNode * templateNode = new NetVaultNode; - templateNode->Ref(); + hsRef templateNode = new NetVaultNode; - if (RelVaultNode * rvnFldr = VaultGetAgesIOwnFolderIncRef()) { + if (hsRef rvnFldr = VaultGetAgesIOwnFolder()) { templateNode->ClearFieldFlags(); templateNode->SetNodeType(plVault::kNodeType_AgeInfo); @@ -453,27 +423,22 @@ PyObject* pyVault::GetPsnlAgeSDL() const StrToUnicode(str, kPersonalAgeFilename, arrsize(str)); ageInfo.SetAgeFilename(str); - if (RelVaultNode * rvnInfo = rvnFldr->GetChildNodeIncRef(templateNode, 2)) { + if (hsRef rvnInfo = rvnFldr->GetChildNode(templateNode, 2)) { templateNode->ClearFieldFlags(); templateNode->SetNodeType(plVault::kNodeType_SDL); - if (RelVaultNode * rvnSdl = rvnInfo->GetChildNodeIncRef(templateNode, 1)) { + if (hsRef rvnSdl = rvnInfo->GetChildNode(templateNode, 1)) { VaultSDLNode sdl(rvnSdl); plStateDataRecord * rec = new plStateDataRecord; if (sdl.GetStateDataRecord(rec, plSDL::kKeepDirty)) result = pySDLStateDataRecord::New(rec); else delete rec; - rvnSdl->UnRef(); } - rvnInfo->UnRef(); } - rvnFldr->UnRef(); } - templateNode->UnRef(); - if (!result) PYTHON_RETURN_NONE; @@ -486,10 +451,9 @@ void pyVault::UpdatePsnlAgeSDL( pySDLStateDataRecord & pyrec ) if ( !rec ) return; - NetVaultNode * templateNode = new NetVaultNode; - templateNode->Ref(); + hsRef templateNode = new NetVaultNode; - if (RelVaultNode * rvnFldr = VaultGetAgesIOwnFolderIncRef()) { + if (hsRef rvnFldr = VaultGetAgesIOwnFolder()) { templateNode->ClearFieldFlags(); templateNode->SetNodeType(plVault::kNodeType_AgeInfo); @@ -498,22 +462,17 @@ void pyVault::UpdatePsnlAgeSDL( pySDLStateDataRecord & pyrec ) StrToUnicode(str, kPersonalAgeFilename, arrsize(str)); ageInfo.SetAgeFilename(str); - if (RelVaultNode * rvnInfo = rvnFldr->GetChildNodeIncRef(templateNode, 2)) { + if (hsRef rvnInfo = rvnFldr->GetChildNode(templateNode, 2)) { templateNode->ClearFieldFlags(); templateNode->SetNodeType(plVault::kNodeType_SDL); - if (RelVaultNode * rvnSdl = rvnInfo->GetChildNodeIncRef(templateNode, 1)) { + if (hsRef rvnSdl = rvnInfo->GetChildNode(templateNode, 1)) { VaultSDLNode sdl(rvnSdl); sdl.SetStateDataRecord(rec, plSDL::kDirtyOnly | plSDL::kTimeStampOnRead); - rvnSdl->UnRef(); } - rvnInfo->UnRef(); } - rvnFldr->UnRef(); } - - templateNode->UnRef(); } bool pyVault::InMyPersonalAge() const @@ -622,24 +581,19 @@ void pyVault::UnInvitePlayerToAge( const char * str, uint32_t playerID ) plUUID guid(str); info.SetAgeInstanceGuid(&guid); - if (RelVaultNode * rvnLink = VaultGetOwnedAgeLinkIncRef(&info)) { - if (RelVaultNode * rvnInfo = rvnLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef rvnLink = VaultGetOwnedAgeLink(&info)) { + if (hsRef rvnInfo = rvnLink->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { VaultAgeInfoNode ageInfo(rvnInfo); ageInfo.CopyTo(&info); - rvnInfo->UnRef(); } - - rvnLink->UnRef(); } - NetVaultNode * templateNode = new NetVaultNode; - templateNode->Ref(); + hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_TextNote); VaultTextNoteNode visitAcc(templateNode); visitAcc.SetNoteType(plVault::kNoteType_UnVisit); visitAcc.SetVisitInfo(info); VaultCreateNode(templateNode, (FVaultCreateNodeCallback)_UninvitePlayerToAge, nil, (void*)playerID); - templateNode->UnRef(); } //============================================================================ @@ -696,12 +650,8 @@ bool pyVault::SetAgePublic( const pyAgeInfoStruct * ageInfo, bool makePublic ) PyObject* pyVault::GetGlobalInbox() { - PyObject * result = nil; - if (RelVaultNode * rvnGlobalInbox = VaultGetGlobalInboxIncRef()) { - result = pyVaultFolderNode::New(rvnGlobalInbox); - rvnGlobalInbox->UnRef(); - return result; - } + if (hsRef rvnGlobalInbox = VaultGetGlobalInbox()) + return pyVaultFolderNode::New(rvnGlobalInbox); PYTHON_RETURN_NONE; } @@ -712,11 +662,8 @@ PyObject* pyVault::GetGlobalInbox() PyObject* pyVault::FindNode( pyVaultNode* templateNode ) const { // See if we already have a matching node locally - if (RelVaultNode * rvn = VaultGetNodeIncRef(templateNode->GetNode())) { - PyObject * result = pyVaultNode::New(rvn); - rvn->UnRef(); - return result; - } + if (hsRef rvn = VaultGetNode(templateNode->GetNode())) + return pyVaultNode::New(rvn); // See if a matching node exists on the server ARRAY(unsigned) nodeIds; @@ -726,11 +673,8 @@ PyObject* pyVault::FindNode( pyVaultNode* templateNode ) const // Only fetch the first matching node since this function returns a single node VaultFetchNodesAndWait(&nodeIds[0], 1); // If we fetched it successfully then it'll be in our local node cache now - if (RelVaultNode * rvn = VaultGetNodeIncRef(nodeIds[0])) { - PyObject * result = pyVaultNode::New(rvn); - rvn->UnRef(); - return result; - } + if (hsRef rvn = VaultGetNode(nodeIds[0])) + return pyVaultNode::New(rvn); } PYTHON_RETURN_NONE; diff --git a/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNode.cpp b/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNode.cpp index e3b720b2..d7d4d32e 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNode.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNode.cpp @@ -89,20 +89,16 @@ static PyObject * GetChildFolder (RelVaultNode * node, unsigned type) { //============================================================================ static PyObject * GetChildPlayerInfoList (RelVaultNode * node, unsigned type) { PyObject * result = nil; - if (RelVaultNode * rvn = node->GetChildPlayerInfoListNodeIncRef(type, 1)) { + if (hsRef rvn = node->GetChildPlayerInfoListNode(type, 1)) result = pyVaultPlayerInfoListNode::New(rvn); - rvn->UnRef(); - } return result; } //============================================================================ static PyObject * GetChildAgeInfoList (RelVaultNode * node, unsigned type) { PyObject * result = nil; - if (RelVaultNode * rvn = node->GetChildAgeInfoListNodeIncRef(type, 1)) { + if (hsRef rvn = node->GetChildAgeInfoListNode(type, 1)) result = pyVaultAgeInfoListNode::New(rvn); - rvn->UnRef(); - } return result; } @@ -173,11 +169,8 @@ PyObject * pyVaultAgeInfoNode::GetParentAgeLink () const if (!fNode) PYTHON_RETURN_NONE; - if (RelVaultNode * rvn = fNode->GetParentAgeLinkIncRef()) { - PyObject * result = pyVaultAgeLinkNode::New(rvn); - rvn->UnRef(); - return result; - } + if (hsRef rvn = fNode->GetParentAgeLink()) + return pyVaultAgeLinkNode::New(rvn); // just return a None object. PYTHON_RETURN_NONE diff --git a/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNode.cpp b/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNode.cpp index 2aa644aa..965af09d 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNode.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNode.cpp @@ -82,10 +82,8 @@ PyObject* pyVaultAgeLinkNode::GetAgeInfo() const PYTHON_RETURN_NONE; PyObject * result = nil; - if (RelVaultNode * rvn = fNode->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef rvn = fNode->GetChildNode(plVault::kNodeType_AgeInfo, 1)) result = pyVaultAgeInfoNode::New(rvn); - rvn->UnRef(); - } if (result) return result; diff --git a/Sources/Plasma/FeatureLib/pfPython/pyVaultNode.cpp b/Sources/Plasma/FeatureLib/pfPython/pyVaultNode.cpp index 55da934d..89cfb335 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyVaultNode.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyVaultNode.cpp @@ -270,17 +270,13 @@ PyObject* pyVaultNode::GetCreatorNode( void ) PyObject * result = nil; if (fNode) { - RelVaultNode * templateNode = new RelVaultNode; - templateNode->Ref(); + hsRef templateNode = new RelVaultNode; templateNode->SetNodeType(plVault::kNodeType_PlayerInfo); VaultPlayerInfoNode plrInfo(templateNode); plrInfo.SetPlayerId(fNode->GetCreatorId()); - if (RelVaultNode * rvn = VaultGetNodeIncRef(templateNode)) { + if (hsRef rvn = VaultGetNode(templateNode)) result = pyVaultPlayerInfoNode::New(rvn); - rvn->UnRef(); - } - templateNode->UnRef(); } if (result) @@ -417,7 +413,7 @@ PyObject* pyVaultNode::AddNode(pyVaultNode* pynode, PyObject* cbObject, uint32_t // Block here until node is created and fetched =( ASSERT(pynode->GetNode()->GetNodeType()); ENetError result; - RelVaultNode * newNode = VaultCreateNodeAndWaitIncRef( + hsRef newNode = VaultCreateNodeAndWait( pynode->GetNode(), &result ); @@ -468,10 +464,9 @@ void pyVaultNode::LinkToNode(int nodeID, PyObject* cbObject, uint32_t cbContext) // Hack the callbacks until vault notification is in place cb->VaultOperationStarted( cbContext ); - if (RelVaultNode * rvn = VaultGetNodeIncRef(nodeID)) { + if (hsRef rvn = VaultGetNode(nodeID)) { cb->SetNode(rvn); cb->fPyNodeRef = pyVaultNodeRef::New(fNode, rvn); - rvn->UnRef(); } VaultAddChildNode(fNode->GetNodeId(), @@ -535,7 +530,8 @@ void pyVaultNode::Save(PyObject* cbObject, uint32_t cbContext) // otherwise just ignore the save request since vault nodes are now auto-saved. if (!fNode->GetNodeId() && fNode->GetNodeType()) { ENetError result; - if (RelVaultNode * node = VaultCreateNodeAndWaitIncRef(fNode, &result)) { + if (hsRef node = VaultCreateNodeAndWait(fNode, &result)) { + node->Ref(); fNode->UnRef(); fNode = node; } @@ -559,7 +555,8 @@ void pyVaultNode::ForceSave() { if (!fNode->GetNodeId() && fNode->GetNodeType()) { ENetError result; - if (RelVaultNode * node = VaultCreateNodeAndWaitIncRef(fNode, &result)) { + if (hsRef node = VaultCreateNodeAndWait(fNode, &result)) { + node->Ref(); fNode->UnRef(); fNode = node; } @@ -578,7 +575,8 @@ void pyVaultNode::SendTo(uint32_t destClientNodeID, PyObject* cbObject, uint32_t // If the node doesn't have an id, then use it as a template to create the node in the vault, if (!fNode->GetNodeId() && fNode->GetNodeType()) { ENetError result; - if (RelVaultNode * node = VaultCreateNodeAndWaitIncRef(fNode, &result)) { + if (hsRef node = VaultCreateNodeAndWait(fNode, &result)) { + node->Ref(); fNode->UnRef(); fNode = node; } @@ -656,14 +654,10 @@ PyObject * pyVaultNode::GetNode2( uint32_t nodeID ) const PyObject * result = nil; if ( fNode ) { - RelVaultNode * templateNode = new RelVaultNode; - templateNode->Ref(); + hsRef templateNode = new RelVaultNode; templateNode->SetNodeId(nodeID); - if (RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode, 1)) { + if (hsRef rvn = fNode->GetChildNode(templateNode, 1)) result = pyVaultNodeRef::New(fNode, rvn); - rvn->UnRef(); - } - templateNode->UnRef(); } if (result) @@ -677,10 +671,8 @@ PyObject* pyVaultNode::FindNode( pyVaultNode * templateNode ) PyObject * result = nil; if ( fNode && templateNode->fNode ) { - if (RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode->fNode, 1)) { + if (hsRef rvn = fNode->GetChildNode(templateNode->fNode, 1)) result = pyVaultNode::New(rvn); - rvn->UnRef(); - } } if (result) @@ -694,17 +686,12 @@ PyObject * pyVaultNode::GetChildNode (unsigned nodeId) { if (!fNode) PYTHON_RETURN_NONE; - RelVaultNode * templateNode = new RelVaultNode; - templateNode->Ref(); + hsRef templateNode = new RelVaultNode; templateNode->SetNodeId(nodeId); - RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode, 1); - templateNode->UnRef(); + hsRef rvn = fNode->GetChildNode(templateNode, 1); - if (rvn) { - PyObject * result = pyVaultNode::New(rvn); - rvn->UnRef(); - return result; - } + if (rvn) + return pyVaultNode::New(rvn); PYTHON_RETURN_NONE; } diff --git a/Sources/Plasma/FeatureLib/pfPython/pyVaultNodeRef.cpp b/Sources/Plasma/FeatureLib/pfPython/pyVaultNodeRef.cpp index 5af48f67..993d19ac 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyVaultNodeRef.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyVaultNodeRef.cpp @@ -113,10 +113,8 @@ unsigned pyVaultNodeRef::GetSaverID () { return 0; unsigned saverId = 0; - if (RelVaultNode * child = VaultGetNodeIncRef(fChild->GetNodeId())) { + if (hsRef child = VaultGetNode(fChild->GetNodeId())) saverId = child->GetRefOwnerId(fParent->GetNodeId()); - child->UnRef(); - } return saverId; } @@ -124,36 +122,30 @@ PyObject * pyVaultNodeRef::GetSaver () { if (!fParent || !fChild) return 0; - RelVaultNode * saver = nil; - if (RelVaultNode * child = VaultGetNodeIncRef(fChild->GetNodeId())) { + hsRef saver; + if (hsRef child = VaultGetNode(fChild->GetNodeId())) { if (unsigned saverId = child->GetRefOwnerId(fParent->GetNodeId())) { // Find the player info node representing the saver - NetVaultNode * templateNode = new NetVaultNode; - templateNode->Ref(); + hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_PlayerInfo); VaultPlayerInfoNode access(templateNode); access.SetPlayerId(saverId); - saver = VaultGetNodeIncRef(templateNode); + saver = VaultGetNode(templateNode); if (!saver) { ARRAY(unsigned) nodeIds; VaultFindNodesAndWait(templateNode, &nodeIds); if (nodeIds.Count() > 0) { VaultFetchNodesAndWait(nodeIds.Ptr(), nodeIds.Count()); - saver = VaultGetNodeIncRef(nodeIds[0]); + saver = VaultGetNode(nodeIds[0]); } } - - templateNode->UnRef(); } - child->UnRef(); } if (!saver) PYTHON_RETURN_NONE; - PyObject * result = pyVaultPlayerInfoNode::New(saver); - saver->UnRef(); - return result; + return pyVaultPlayerInfoNode::New(saver); } bool pyVaultNodeRef::BeenSeen () { diff --git a/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNode.cpp b/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNode.cpp index 378289da..1698f40c 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNode.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNode.cpp @@ -79,17 +79,13 @@ bool pyVaultPlayerInfoListNode::HasPlayer( uint32_t playerID ) if (!fNode) return false; - NetVaultNode * templateNode = new NetVaultNode; - templateNode->Ref(); + hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_PlayerInfo); VaultPlayerInfoNode access(templateNode); access.SetPlayerId(playerID); - RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode, 1); - if (rvn) - rvn->UnRef(); + hsRef rvn = fNode->GetChildNode(templateNode, 1); - templateNode->UnRef(); return (rvn != nil); } @@ -131,18 +127,13 @@ void pyVaultPlayerInfoListNode::RemovePlayer( uint32_t playerID ) if (!fNode) return; - NetVaultNode * templateNode = new NetVaultNode; - templateNode->Ref(); + hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_PlayerInfo); VaultPlayerInfoNode access(templateNode); access.SetPlayerId(playerID); - if (RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode, 1)) { + if (hsRef rvn = fNode->GetChildNode(templateNode, 1)) VaultRemoveChildNode(fNode->GetNodeId(), rvn->GetNodeId(), nil, nil); - rvn->UnRef(); - } - - templateNode->UnRef(); } PyObject * pyVaultPlayerInfoListNode::GetPlayer( uint32_t playerID ) @@ -150,19 +141,14 @@ PyObject * pyVaultPlayerInfoListNode::GetPlayer( uint32_t playerID ) if (!fNode) PYTHON_RETURN_NONE; - NetVaultNode * templateNode = new NetVaultNode; - templateNode->Ref(); + hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_PlayerInfo); VaultPlayerInfoNode access(templateNode); access.SetPlayerId(playerID); PyObject * result = nil; - if (RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode, 1)) { + if (hsRef rvn = fNode->GetChildNode(templateNode, 1)) result = pyVaultPlayerInfoNode::New(rvn); - rvn->UnRef(); - } - - templateNode->UnRef(); if (!result) PYTHON_RETURN_NONE; diff --git a/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerNode.cpp b/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerNode.cpp index 1c98bc9f..00d1373f 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerNode.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerNode.cpp @@ -65,12 +65,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com //============================================================================ static PyObject * GetPlayerVaultFolder (unsigned folderType) { PyObject * result = nil; - if (RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef()) { - if (RelVaultNode * rvnFldr = rvnPlr->GetChildFolderNodeIncRef(folderType, 1)) { + if (hsRef rvnPlr = VaultGetPlayerNode()) { + if (hsRef rvnFldr = rvnPlr->GetChildFolderNode(folderType, 1)) result = pyVaultFolderNode::New(rvnFldr); - rvnFldr->UnRef(); - } - rvnPlr->UnRef(); } return result; @@ -172,11 +169,8 @@ PyObject *pyVaultPlayerNode::GetAgesIOwnFolder() PyObject *pyVaultPlayerNode::GetPlayerInfo() { - if (RelVaultNode * rvn = VaultGetPlayerInfoNodeIncRef()) { - PyObject * result = pyVaultPlayerInfoNode::New(rvn); - rvn->UnRef(); - return result; - } + if (hsRef rvn = VaultGetPlayerInfoNode()) + return pyVaultPlayerInfoNode::New(rvn); PYTHON_RETURN_NONE; } @@ -221,11 +215,8 @@ void pyVaultPlayerNode::RemoveOwnedAgeLink(const char* ageFilename) PyObject *pyVaultPlayerNode::GetVisitAgeLink(const pyAgeInfoStruct *info) { - if (RelVaultNode * rvn = VaultGetVisitAgeLinkIncRef(info->GetAgeInfo())) { - PyObject * result = pyVaultAgeLinkNode::New(rvn); - rvn->UnRef(); - return result; - } + if (hsRef rvn = VaultGetVisitAgeLink(info->GetAgeInfo())) + return pyVaultAgeLinkNode::New(rvn); PYTHON_RETURN_NONE; } @@ -242,11 +233,8 @@ PyObject *pyVaultPlayerNode::FindChronicleEntry(const char *entryName) { wchar_t wStr[MAX_PATH]; StrToUnicode(wStr, entryName, arrsize(wStr)); - if (RelVaultNode * rvn = VaultFindChronicleEntryIncRef(wStr)) { - PyObject * result = pyVaultChronicleNode::New(rvn); - rvn->UnRef(); - return result; - } + if (hsRef rvn = VaultFindChronicleEntry(wStr)) + return pyVaultChronicleNode::New(rvn); PYTHON_RETURN_NONE; } diff --git a/Sources/Plasma/FeatureLib/pfPython/pyVaultTextNoteNode.cpp b/Sources/Plasma/FeatureLib/pfPython/pyVaultTextNoteNode.cpp index e90af2da..fb0baed1 100644 --- a/Sources/Plasma/FeatureLib/pfPython/pyVaultTextNoteNode.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/pyVaultTextNoteNode.cpp @@ -228,10 +228,8 @@ void pyVaultTextNoteNode::SetDeviceInbox( const char * devName, PyObject * cbObj wchar_t wDev[MAX_PATH]; StrToUnicode(wDev, devName, arrsize(wDev)); - if (RelVaultNode * rvn = VaultAgeSetDeviceInboxAndWaitIncRef(wDev, DEFAULT_DEVICE_INBOX)) { + if (hsRef rvn = VaultAgeSetDeviceInboxAndWait(wDev, DEFAULT_DEVICE_INBOX)) cb->SetNode(rvn); - rvn->UnRef(); - } cb->VaultOperationComplete( cbContext, cb->GetNode() ? hsOK : hsFail ); // cbHolder deletes itself here. } diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvatarClothing.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAvatarClothing.cpp index 253d1d15..d9919b79 100644 --- a/Sources/Plasma/PubUtilLib/plAvatar/plAvatarClothing.cpp +++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvatarClothing.cpp @@ -802,7 +802,7 @@ bool plClothingOutfit::IReadFromVault() WearDefaultClothing(); - RelVaultNode * rvn = VaultGetAvatarOutfitFolderIncRef(); + hsRef rvn = VaultGetAvatarOutfitFolder(); if (!rvn) return false; @@ -837,7 +837,6 @@ bool plClothingOutfit::IReadFromVault() fSynchClients = true; // set true if the next synch should be bcast ForceUpdate(true); - rvn->UnRef(); return true; } @@ -857,8 +856,8 @@ void plClothingOutfit::WriteToVault() if (!fVaultSaveEnabled) return; - RelVaultNode * rvn; - if (nil == (rvn = VaultGetAvatarOutfitFolderIncRef())) + hsRef rvn = VaultGetAvatarOutfitFolder(); + if (!rvn) return; ARRAY(plStateDataRecord*) SDRs; @@ -874,7 +873,6 @@ void plClothingOutfit::WriteToVault() SDRs.Add(appearanceStateDesc->GetStateDataRecord(0)); WriteToVault(SDRs); - rvn->UnRef(); } void plClothingOutfit::WriteToVault(const ARRAY(plStateDataRecord*) & SDRs) @@ -883,8 +881,8 @@ void plClothingOutfit::WriteToVault(const ARRAY(plStateDataRecord*) & SDRs) if (fAvatar->GetTarget(0) != plNetClientApp::GetInstance()->GetLocalPlayer()) return; - RelVaultNode * rvn; - if (nil == (rvn = VaultGetAvatarOutfitFolderIncRef())) + hsRef rvn = VaultGetAvatarOutfitFolder(); + if (!rvn) return; ARRAY(plStateDataRecord*) morphs; @@ -922,25 +920,19 @@ void plClothingOutfit::WriteToVault(const ARRAY(plStateDataRecord*) & SDRs) // Write all SDL to to the outfit folder, reusing existing nodes and creating new ones as necessary for (unsigned i = 0; i < arr->Count(); ++i) { - RelVaultNode * node; + hsRef node; if (nodes.Count()) { node = nodes[0]; nodes.DeleteUnordered(0); - node->Ref(); // REF: Work - node->UnRef(); // REF: Find } else { - RelVaultNode * templateNode = new RelVaultNode; - templateNode->SetNodeType(plVault::kNodeType_SDL); - templates.Add(templateNode); - node = templateNode; - node->Ref(); // REF: Create - node->Ref(); // REF: Work + node = new RelVaultNode; + node->SetNodeType(plVault::kNodeType_SDL); + templates.Add(node); } VaultSDLNode sdl(node); sdl.SetStateDataRecord((*arr)[i], 0); - node->UnRef(); // REF: Work } } @@ -953,7 +945,8 @@ void plClothingOutfit::WriteToVault(const ARRAY(plStateDataRecord*) & SDRs) // Create actual new nodes from their templates for (unsigned i = 0; i < templates.Count(); ++i) { ENetError result; - if (RelVaultNode * actual = VaultCreateNodeAndWaitIncRef(templates[i], &result)) { + if (hsRef actual = VaultCreateNodeAndWait(templates[i], &result)) { + actual->Ref(); actuals.Add(actual); } templates[i]->UnRef(); // REF: Create @@ -1483,7 +1476,7 @@ bool plClothingOutfit::WriteToFile(const plFileName &filename) if (!filename.IsValid()) return false; - RelVaultNode* rvn = VaultGetAvatarOutfitFolderIncRef(); + hsRef rvn = VaultGetAvatarOutfitFolder(); if (!rvn) return false; @@ -1505,7 +1498,6 @@ bool plClothingOutfit::WriteToFile(const plFileName &filename) S.Write(sdl.GetSDLDataLength(), sdl.GetSDLData()); nodes[i]->UnRef(); } - rvn->UnRef(); S.Close(); return true; @@ -1626,7 +1618,7 @@ plClothingElement *plClothingMgr::FindElementByName(const plString &name) const void plClothingMgr::AddItemsToCloset(hsTArray &items) { - RelVaultNode * rvn = VaultGetAvatarClosetFolderIncRef(); + hsRef rvn = VaultGetAvatarClosetFolder(); if (!rvn) return; @@ -1663,23 +1655,20 @@ void plClothingMgr::AddItemsToCloset(hsTArray &items) for (unsigned i = 0; i < templates.Count(); ++i) { ENetError result; - if (RelVaultNode * actual = VaultCreateNodeAndWaitIncRef(templates[i], &result)) { + if (hsRef actual = VaultCreateNodeAndWait(templates[i], &result)) { VaultAddChildNodeAndWait( rvn->GetNodeId(), actual->GetNodeId(), NetCommGetPlayer()->playerInt ); - actual->UnRef(); // REF: Create } templates[i]->UnRef(); // REF: Create } - - rvn->UnRef(); } void plClothingMgr::GetClosetItems(hsTArray &out) { - RelVaultNode * rvn = VaultGetAvatarClosetFolderIncRef(); + hsRef rvn = VaultGetAvatarClosetFolder(); if (!rvn) return; @@ -1701,9 +1690,7 @@ void plClothingMgr::GetClosetItems(hsTArray &out) out.Remove(i); } } - - rvn->UnRef(); -} +} void plClothingMgr::GetAllWithSameMesh(plClothingItem *item, hsTArray &out) { diff --git a/Sources/Plasma/PubUtilLib/plInputCore/plSceneInputInterface.cpp b/Sources/Plasma/PubUtilLib/plInputCore/plSceneInputInterface.cpp index b171a784..8ae64159 100644 --- a/Sources/Plasma/PubUtilLib/plInputCore/plSceneInputInterface.cpp +++ b/Sources/Plasma/PubUtilLib/plInputCore/plSceneInputInterface.cpp @@ -858,7 +858,7 @@ void plSceneInputInterface::ILinkOffereeToAge() return; } } - else if (RelVaultNode * linkNode = VaultGetOwnedAgeLinkIncRef(&info)) { + else if (hsRef linkNode = VaultGetOwnedAgeLink(&info)) { // We have the age in our AgesIOwnFolder. If its volatile, dump it for the new one. VaultAgeLinkNode linkAcc(linkNode); if (linkAcc.GetVolatile()) { @@ -868,7 +868,6 @@ void plSceneInputInterface::ILinkOffereeToAge() VaultRegisterOwnedAgeAndWait(&link); } } - linkNode->UnRef(); } if (!fSpawnPoint.IsEmpty()) { diff --git a/Sources/Plasma/PubUtilLib/plNetClient/plNetLinkingMgr.cpp b/Sources/Plasma/PubUtilLib/plNetClient/plNetLinkingMgr.cpp index fee66911..e1ae4468 100644 --- a/Sources/Plasma/PubUtilLib/plNetClient/plNetLinkingMgr.cpp +++ b/Sources/Plasma/PubUtilLib/plNetClient/plNetLinkingMgr.cpp @@ -513,13 +513,13 @@ bool plNetLinkingMgr::IProcessVaultNotifyMsg(plVaultNotifyMsg* msg) return false; plAgeLinkStruct* cur = GetAgeLink(); - RelVaultNode* cVaultLink = nil; + hsRef cVaultLink; switch (msg->GetType()) { case plVaultNotifyMsg::kRegisteredChildAgeLink: case plVaultNotifyMsg::kRegisteredOwnedAge: case plVaultNotifyMsg::kRegisteredSubAgeLink: - cVaultLink = VaultGetNodeIncRef(msg->GetArgs()->GetInt(plNetCommon::VaultTaskArgs::kAgeLinkNode)); + cVaultLink = VaultGetNode(msg->GetArgs()->GetInt(plNetCommon::VaultTaskArgs::kAgeLinkNode)); break; default: return false; @@ -531,18 +531,15 @@ bool plNetLinkingMgr::IProcessVaultNotifyMsg(plVaultNotifyMsg* msg) // It's very useful though... VaultAgeLinkNode accLink(cVaultLink); accLink.CopyTo(cur); - if (RelVaultNode* rvnInfo = cVaultLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) + if (hsRef rvnInfo = cVaultLink->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { VaultAgeInfoNode accInfo(rvnInfo); accInfo.CopyTo(cur->GetAgeInfo()); - rvnInfo->UnRef(); } IDoLink(fDeferredLink); fDeferredLink = nil; return true; - - cVaultLink->UnRef(); } return false; @@ -778,7 +775,7 @@ void plNetLinkingMgr::IPostProcessLink( void ) bool psnl = (info->GetAgeFilename().CompareI(kPersonalAgeFilename) == 0); // Update our online status - if (RelVaultNode* rvnInfo = VaultGetPlayerInfoNodeIncRef()) { + if (hsRef rvnInfo = VaultGetPlayerInfoNode()) { VaultPlayerInfoNode accInfo(rvnInfo); wchar_t ageInstName[MAX_PATH]; plUUID ageInstGuid = *info->GetAgeInstanceGuid(); @@ -786,7 +783,6 @@ void plNetLinkingMgr::IPostProcessLink( void ) accInfo.SetAgeInstName(ageInstName); accInfo.SetAgeInstUuid(ageInstGuid); accInfo.SetOnline(true); - rvnInfo->UnRef(); } switch (link->GetLinkingRules()) { @@ -797,8 +793,8 @@ void plNetLinkingMgr::IPostProcessLink( void ) break; { // Ensure we're in the AgeOwners folder - RelVaultNode* fldr = VaultGetAgeAgeOwnersFolderIncRef(); - RelVaultNode* info = VaultGetPlayerInfoNodeIncRef(); + hsRef fldr = VaultGetAgeAgeOwnersFolder(); + hsRef info = VaultGetPlayerInfoNode(); if (fldr && info) if (!fldr->IsParentOf(info->GetNodeId(), 1)) @@ -809,11 +805,6 @@ void plNetLinkingMgr::IPostProcessLink( void ) nil, nil ); - - if (fldr) - fldr->UnRef(); - if (info) - info->UnRef(); } } break; @@ -824,8 +815,8 @@ void plNetLinkingMgr::IPostProcessLink( void ) break; { // Ensure we're in the CanVisit folder - RelVaultNode* fldr = VaultGetAgeCanVisitFolderIncRef(); - RelVaultNode* info = VaultGetPlayerInfoNodeIncRef(); + hsRef fldr = VaultGetAgeCanVisitFolder(); + hsRef info = VaultGetPlayerInfoNode(); if (fldr && info) if (!fldr->IsParentOf(info->GetNodeId(), 1)) @@ -836,11 +827,6 @@ void plNetLinkingMgr::IPostProcessLink( void ) nil, nil ); - - if (fldr) - fldr->UnRef(); - if (info) - info->UnRef(); } } break; @@ -873,16 +859,15 @@ uint8_t plNetLinkingMgr::IPreProcessLink(void) #if 0 // Appear offline until we're done linking - if (RelVaultNode * rvnInfo = VaultGetPlayerInfoNodeIncRef()) { + if (hsRef rvnInfo = VaultGetPlayerInfoNode()) { VaultPlayerInfoNode accInfo(rvnInfo); accInfo.SetAgeInstName(nil); accInfo.SetAgeInstUuid(kNilUuid); accInfo.SetOnline(false); - rvnInfo->UnRef(); } #else // Update our online status - if (RelVaultNode * rvnInfo = VaultGetPlayerInfoNodeIncRef()) { + if (hsRef rvnInfo = VaultGetPlayerInfoNode()) { VaultPlayerInfoNode accInfo(rvnInfo); wchar_t ageInstName[MAX_PATH]; plUUID ageInstGuid = *GetAgeLink()->GetAgeInfo()->GetAgeInstanceGuid(); @@ -890,7 +875,6 @@ uint8_t plNetLinkingMgr::IPreProcessLink(void) accInfo.SetAgeInstName(ageInstName); accInfo.SetAgeInstUuid(ageInstGuid); accInfo.SetOnline(true); - rvnInfo->UnRef(); } #endif @@ -984,7 +968,7 @@ uint8_t plNetLinkingMgr::IPreProcessLink(void) success = kLinkDeferred; break; } - else if (RelVaultNode* linkNode = VaultGetOwnedAgeLinkIncRef(&ageInfo)) { + else if (hsRef linkNode = VaultGetOwnedAgeLink(&ageInfo)) { // We have the age in our AgesIOwnFolder. If its volatile, dump it for the new one. VaultAgeLinkNode linkAcc(linkNode); if (linkAcc.GetVolatile()) { @@ -1035,7 +1019,6 @@ uint8_t plNetLinkingMgr::IPreProcessLink(void) break; } } - linkNode->UnRef(); } } diff --git a/Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.cpp b/Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.cpp index 4ee6e878..c758b003 100644 --- a/Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.cpp +++ b/Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.cpp @@ -275,10 +275,9 @@ static void PlayerInitCallback ( // Ensure the city link has the required spawn points plAgeInfoStruct info; info.SetAgeFilename(kCityAgeFilename); - if (RelVaultNode * rvn = VaultGetOwnedAgeLinkIncRef(&info)) { + if (hsRef rvn = VaultGetOwnedAgeLink(&info)) { VaultAgeLinkNode acc(rvn); acc.AddSpawnPoint(plSpawnPointInfo(kCityFerryTerminalLinkTitle, kCityFerryTerminalLinkSpawnPtName)); - rvn->UnRef(); } VaultProcessPlayerInbox(); @@ -1119,14 +1118,12 @@ void NetCommSetActivePlayer (//--> plNetCommActivePlayerMsg unsigned playerInt = 0; if (s_player) { - if (RelVaultNode* rvn = VaultGetPlayerInfoNodeIncRef()) { + if (hsRef rvn = VaultGetPlayerInfoNode()) { VaultPlayerInfoNode pInfo(rvn); pInfo.SetAgeInstName(nil); pInfo.SetAgeInstUuid(kNilUuid); pInfo.SetOnline(false); NetCliAuthVaultNodeSave(rvn, nil, nil); - - rvn->UnRef(); } VaultCull(s_player->playerInt); @@ -1321,10 +1318,9 @@ void NetCommUpgradeVisitorToExplorer ( void NetCommSetCCRLevel ( unsigned ccrLevel ) { - if (RelVaultNode * rvnInfo = VaultGetPlayerInfoNodeIncRef()) { + if (hsRef rvnInfo = VaultGetPlayerInfoNode()) { VaultPlayerInfoNode pInfo(rvnInfo); pInfo.SetCCRLevel(ccrLevel); - rvnInfo->UnRef(); } NetCliAuthSetCCRLevel(ccrLevel); diff --git a/Sources/Plasma/PubUtilLib/plVault/plVaultClientApi.cpp b/Sources/Plasma/PubUtilLib/plVault/plVaultClientApi.cpp index 5801e552..1e8a60e7 100644 --- a/Sources/Plasma/PubUtilLib/plVault/plVaultClientApi.cpp +++ b/Sources/Plasma/PubUtilLib/plVault/plVaultClientApi.cpp @@ -460,10 +460,8 @@ static void FetchRefOwners ( prevId = ownerIds[i]; VaultPlayerInfoNode access(templateNode); access.SetPlayerId(refs[i].ownerId); - if (RelVaultNode * rvn = VaultGetNodeIncRef(templateNode)) { - rvn->UnRef(); + if (VaultGetNode(templateNode)) continue; - } NetCliAuthVaultNodeFind( templateNode, VaultNodeFound, @@ -623,11 +621,9 @@ static void VaultNodeAdded ( ) { LogMsg(kLogDebug, L"Notify: Node added: p:%u,c:%u", parentId, childId); - unsigned inboxId = 0; - if (RelVaultNode * rvnInbox = VaultGetPlayerInboxFolderIncRef()) { + unsigned inboxId = 0; + if (hsRef rvnInbox = VaultGetPlayerInboxFolder()) inboxId = rvnInbox->GetNodeId(); - rvnInbox->UnRef(); - } // Build the relationship locally NetVaultNodeRef refs[] = { @@ -746,35 +742,27 @@ static void SaveDirtyNodes () { } //============================================================================ -static RelVaultNode * GetChildFolderNode ( +static hsRef GetChildFolderNode ( RelVaultNode * parent, unsigned folderType, unsigned maxDepth ) { if (!parent) - return nil; + return nullptr; - RelVaultNode * rvn = parent->GetChildFolderNodeIncRef(folderType, maxDepth); - if (rvn) - rvn->UnRef(); - - return rvn; + return parent->GetChildFolderNode(folderType, maxDepth); } //============================================================================ -static RelVaultNode * GetChildPlayerInfoListNode ( +static hsRef GetChildPlayerInfoListNode ( RelVaultNode * parent, unsigned folderType, unsigned maxDepth ) { if (!parent) - return nil; - - RelVaultNode * rvn = parent->GetChildPlayerInfoListNodeIncRef(folderType, maxDepth); - if (rvn) - rvn->UnRef(); + return nullptr; - return rvn; + return parent->GetChildPlayerInfoListNode(folderType, maxDepth); } @@ -1207,69 +1195,65 @@ void RelVaultNode::GetParentNodeIds ( //============================================================================ -RelVaultNode * RelVaultNode::GetParentNodeIncRef ( +hsRef RelVaultNode::GetParentNode ( NetVaultNode * templateNode, unsigned maxDepth ) { if (maxDepth == 0) - return nil; + return nullptr; RelVaultNodeLink * link; link = state->parents.Head(); for (; link; link = state->parents.Next(link)) { - if (link->node->Matches(templateNode)) { - link->node->Ref("Found"); + if (link->node->Matches(templateNode)) return link->node; - } } link = state->parents.Head(); for (; link; link = state->parents.Next(link)) { - if (RelVaultNode * node = link->node->GetParentNodeIncRef(templateNode, maxDepth-1)) + if (hsRef node = link->node->GetParentNode(templateNode, maxDepth - 1)) return node; } - return nil; + return nullptr; } //============================================================================ -RelVaultNode * RelVaultNode::GetChildNodeIncRef ( +hsRef RelVaultNode::GetChildNode ( NetVaultNode * templateNode, unsigned maxDepth ) { if (maxDepth == 0) - return nil; + return nullptr; RelVaultNodeLink * link; link = state->children.Head(); for (; link; link = state->children.Next(link)) { - if (link->node->Matches(templateNode)) { - link->node->Ref("Found"); + if (link->node->Matches(templateNode)) return link->node; - } } link = state->children.Head(); for (; link; link = state->children.Next(link)) { - if (RelVaultNode * node = link->node->GetChildNodeIncRef(templateNode, maxDepth-1)) + if (hsRef node = link->node->GetChildNode(templateNode, maxDepth-1)) return node; } - return nil; + return nullptr; } //============================================================================ -RelVaultNode * RelVaultNode::GetChildNodeIncRef ( +hsRef RelVaultNode::GetChildNode ( unsigned nodeType, unsigned maxDepth ) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(nodeType); - return GetChildNodeIncRef(templateNode, maxDepth); + return GetChildNode(templateNode, maxDepth); } //============================================================================ -RelVaultNode * RelVaultNode::GetChildFolderNodeIncRef ( +hsRef RelVaultNode::GetChildFolderNode ( unsigned folderType, unsigned maxDepth ) { @@ -1277,11 +1261,11 @@ RelVaultNode * RelVaultNode::GetChildFolderNodeIncRef ( templateNode->SetNodeType(plVault::kNodeType_Folder); VaultFolderNode folder(templateNode); folder.SetFolderType(folderType); - return GetChildNodeIncRef(templateNode, maxDepth); + return GetChildNode(templateNode, maxDepth); } //============================================================================ -RelVaultNode * RelVaultNode::GetChildPlayerInfoListNodeIncRef ( +hsRef RelVaultNode::GetChildPlayerInfoListNode ( unsigned folderType, unsigned maxDepth ) { @@ -1289,11 +1273,11 @@ RelVaultNode * RelVaultNode::GetChildPlayerInfoListNodeIncRef ( templateNode->SetNodeType(plVault::kNodeType_PlayerInfoList); VaultPlayerInfoListNode access(templateNode); access.SetFolderType(folderType); - return GetChildNodeIncRef(templateNode, maxDepth); + return GetChildNode(templateNode, maxDepth); } //============================================================================ -RelVaultNode * RelVaultNode::GetChildAgeInfoListNodeIncRef ( +hsRef RelVaultNode::GetChildAgeInfoListNode ( unsigned folderType, unsigned maxDepth ) { @@ -1301,8 +1285,7 @@ RelVaultNode * RelVaultNode::GetChildAgeInfoListNodeIncRef ( templateNode->SetNodeType(plVault::kNodeType_AgeInfoList); VaultAgeInfoListNode access(templateNode); access.SetFolderType(folderType); - RelVaultNode * result = GetChildNodeIncRef(templateNode, maxDepth); - return result; + return GetChildNode(templateNode, maxDepth); } //============================================================================ @@ -1559,22 +1542,22 @@ void RelVaultNode::PrintTree (FStateDump dumpProc, unsigned level) { } //============================================================================ -RelVaultNode * RelVaultNode::GetParentAgeLinkIncRef () { +hsRef RelVaultNode::GetParentAgeLink () { // this function only makes sense when called on age info nodes ASSERT(GetNodeType() == plVault::kNodeType_AgeInfo); - RelVaultNode * result = nil; + hsRef result; hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_AgeLink); // Get our parent AgeLink node - if (RelVaultNode * rvnLink = GetParentNodeIncRef(templateNode, 1)) { + if (hsRef rvnLink = GetParentNode(templateNode, 1)) { // Get the next AgeLink node in our parent tree - result = rvnLink->GetParentNodeIncRef(templateNode, 3); + result = rvnLink->GetParentNode(templateNode, 3); } - + return result; } @@ -1649,18 +1632,8 @@ void VaultUpdate () { ***/ //============================================================================ -static RelVaultNode * GetNode ( - unsigned id -) { - RelVaultNodeLink * link = s_nodes.Find(id); - if (link) - return link->node; - return nil; -} - -//============================================================================ -static RelVaultNode * GetNode ( - NetVaultNode * templateNode +hsRef VaultGetNode ( + NetVaultNode * templateNode ) { ASSERT(templateNode); RelVaultNodeLink * link = s_nodes.Head(); @@ -1669,41 +1642,16 @@ static RelVaultNode * GetNode ( return link->node; link = s_nodes.Next(link); } - return nil; -} - -//============================================================================ -RelVaultNode * VaultGetNodeIncRef ( - NetVaultNode * templateNode -) { - if (RelVaultNode * node = GetNode(templateNode)) { - node->Ref(); - return node; - } - return nil; + return nullptr; } //============================================================================ -RelVaultNode * VaultGetNodeIncRef ( - unsigned nodeId +hsRef VaultGetNode ( + unsigned nodeId ) { - if (RelVaultNode * node = GetNode(nodeId)) { - node->Ref(); - return node; - } - return nil; -} - -//============================================================================ -RelVaultNode * VaultGetNodeIncRef ( - unsigned nodeId, - const char reftag[] -) { - if (RelVaultNodeLink * link = s_nodes.Find(nodeId)) { - link->node->Ref(reftag); + if (RelVaultNodeLink * link = s_nodes.Find(nodeId)) return link->node; - } - return nil; + return nullptr; } //============================================================================ @@ -1931,14 +1879,14 @@ void VaultPublishNode ( unsigned nodeId, const wchar_t deviceName[] ) { - RelVaultNode * rvn; + hsRef rvn; - rvn = VaultAgeGetDeviceInboxIncRef(deviceName); + rvn = VaultAgeGetDeviceInbox(deviceName); if (!rvn) { LogMsg(kLogDebug, L"Failed to find inbox for device %s, adding it on-the-fly", deviceName); - VaultAgeSetDeviceInboxAndWaitIncRef(deviceName, DEFAULT_DEVICE_INBOX); + VaultAgeSetDeviceInboxAndWait(deviceName, DEFAULT_DEVICE_INBOX); - rvn = VaultAgeGetDeviceInboxIncRef(deviceName); + rvn = VaultAgeGetDeviceInbox(deviceName); if (!rvn) { LogMsg(kLogDebug, L"Failed to add inbox to device %s on-the-fly", deviceName); return; @@ -1946,7 +1894,6 @@ void VaultPublishNode ( } VaultAddChildNode(rvn->GetNodeId(), nodeId, VaultGetPlayerId(), nil, nil); - rvn->UnRef(); } //============================================================================ @@ -1967,13 +1914,12 @@ void VaultCreateNode ( ) { VaultCreateNodeTrans * trans = new VaultCreateNodeTrans(callback, state, param); - if (RelVaultNode * age = VaultGetAgeNodeIncRef()) { + if (hsRef age = VaultGetAgeNode()) { VaultAgeNode access(age); if (!(templateNode->GetFieldFlags() & NetVaultNode::kCreateAgeName)) templateNode->SetCreateAgeName(access.GetAgeName()); if (!(templateNode->GetFieldFlags() & NetVaultNode::kCreateAgeUuid)) templateNode->SetCreateAgeUuid(access.GetAgeInstanceGuid()); - age->UnRef(); } NetCliAuthVaultNodeCreate( @@ -2002,7 +1948,7 @@ void VaultCreateNode ( } //============================================================================ -namespace _VaultCreateNodeAndWaitIncRef { +namespace _VaultCreateNodeAndWait { struct _CreateNodeParam { RelVaultNode * node; @@ -2021,13 +1967,13 @@ static void _CreateNodeCallback ( param->complete = true; } -} // namespace _VaultCreateNodeAndWaitIncRef +} // namespace _VaultCreateNodeAndWait -RelVaultNode * VaultCreateNodeAndWaitIncRef ( +hsRef VaultCreateNodeAndWait ( NetVaultNode * templateNode, ENetError * result ) { - using namespace _VaultCreateNodeAndWaitIncRef; + using namespace _VaultCreateNodeAndWait; _CreateNodeParam param; memset(¶m, 0, sizeof(param)); @@ -2046,23 +1992,19 @@ RelVaultNode * VaultCreateNodeAndWaitIncRef ( } *result = param.result; - if (IS_NET_SUCCESS(param.result)) - param.node->Ref(); return param.node; } //============================================================================ -RelVaultNode * VaultCreateNodeAndWaitIncRef ( +hsRef VaultCreateNodeAndWait ( plVault::NodeTypes nodeType, ENetError * result ) { - RelVaultNode * node; + hsRef node; hsRef templateNode = new RelVaultNode; templateNode->SetNodeType(nodeType); - - node = VaultCreateNodeAndWaitIncRef(templateNode, result); - return node; + return VaultCreateNodeAndWait(templateNode, result); } //============================================================================ @@ -2265,96 +2207,91 @@ void VaultInitAge ( ***/ //============================================================================ -static RelVaultNode * GetPlayerNode () { +static hsRef GetPlayerNode () { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_VNodeMgrPlayer); if (NetCommGetPlayer()) templateNode->SetNodeId(NetCommGetPlayer()->playerInt); - RelVaultNode * result = GetNode(templateNode); - return result; + return VaultGetNode(templateNode); } //============================================================================ unsigned VaultGetPlayerId () { - if (RelVaultNode * rvn = GetPlayerNode()) + if (hsRef rvn = GetPlayerNode()) return rvn->GetNodeId(); return 0; } //============================================================================ -RelVaultNode * VaultGetPlayerNodeIncRef () { - if (RelVaultNode * rvnPlr = GetPlayerNode()) { - rvnPlr->Ref(); +hsRef VaultGetPlayerNode () { + if (hsRef rvnPlr = GetPlayerNode()) return rvnPlr; - } - return nil; + return nullptr; } //============================================================================ -RelVaultNode * VaultGetPlayerInfoNodeIncRef () { - RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef(); +hsRef VaultGetPlayerInfoNode () { + hsRef rvnPlr = VaultGetPlayerNode(); if (!rvnPlr) - return nil; + return nullptr; hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_PlayerInfo); VaultPlayerInfoNode plrInfo(templateNode); plrInfo.SetPlayerId(rvnPlr->GetNodeId()); - - rvnPlr->UnRef(); - RelVaultNode * result = nil; - if (RelVaultNode * rvnPlrInfo = rvnPlr->GetChildNodeIncRef(templateNode, 1)) + hsRef result; + if (hsRef rvnPlrInfo = rvnPlr->GetChildNode(templateNode, 1)) result = rvnPlrInfo; return result; } //============================================================================ -RelVaultNode * VaultGetAvatarOutfitFolderIncRef () { - if (RelVaultNode * rvn = GetPlayerNode()) - return rvn->GetChildFolderNodeIncRef(plVault::kAvatarOutfitFolder, 1); - return nil; +hsRef VaultGetAvatarOutfitFolder () { + if (hsRef rvn = GetPlayerNode()) + return rvn->GetChildFolderNode(plVault::kAvatarOutfitFolder, 1); + return nullptr; } //============================================================================ -RelVaultNode * VaultGetAvatarClosetFolderIncRef () { - if (RelVaultNode * rvn = GetPlayerNode()) - return rvn->GetChildFolderNodeIncRef(plVault::kAvatarClosetFolder, 1); - return nil; +hsRef VaultGetAvatarClosetFolder () { + if (hsRef rvn = GetPlayerNode()) + return rvn->GetChildFolderNode(plVault::kAvatarClosetFolder, 1); + return nullptr; } //============================================================================ -RelVaultNode * VaultGetChronicleFolderIncRef () { - if (RelVaultNode * rvn = GetPlayerNode()) - return rvn->GetChildFolderNodeIncRef(plVault::kChronicleFolder, 1); - return nil; +hsRef VaultGetChronicleFolder () { + if (hsRef rvn = GetPlayerNode()) + return rvn->GetChildFolderNode(plVault::kChronicleFolder, 1); + return nullptr; } //============================================================================ -RelVaultNode * VaultGetAgesIOwnFolderIncRef () { - if (RelVaultNode * rvn = GetPlayerNode()) - return rvn->GetChildAgeInfoListNodeIncRef(plVault::kAgesIOwnFolder, 1); - return nil; +hsRef VaultGetAgesIOwnFolder () { + if (hsRef rvn = GetPlayerNode()) + return rvn->GetChildAgeInfoListNode(plVault::kAgesIOwnFolder, 1); + return nullptr; } //============================================================================ -RelVaultNode * VaultGetAgesICanVisitFolderIncRef () { - if (RelVaultNode * rvn = GetPlayerNode()) - return rvn->GetChildAgeInfoListNodeIncRef(plVault::kAgesICanVisitFolder, 1); - return nil; +hsRef VaultGetAgesICanVisitFolder () { + if (hsRef rvn = GetPlayerNode()) + return rvn->GetChildAgeInfoListNode(plVault::kAgesICanVisitFolder, 1); + return nullptr; } //============================================================================ -RelVaultNode * VaultGetPlayerInboxFolderIncRef () { - if (RelVaultNode * rvn = GetPlayerNode()) - return rvn->GetChildFolderNodeIncRef(plVault::kInboxFolder, 1); - return nil; +hsRef VaultGetPlayerInboxFolder () { + if (hsRef rvn = GetPlayerNode()) + return rvn->GetChildFolderNode(plVault::kInboxFolder, 1); + return nullptr; } //============================================================================ bool VaultGetLinkToMyNeighborhood (plAgeLinkStruct * link) { - RelVaultNode * rvnFldr = VaultGetAgesIOwnFolderIncRef(); + hsRef rvnFldr = VaultGetAgesIOwnFolder(); if (!rvnFldr) return false; @@ -2366,20 +2303,18 @@ bool VaultGetLinkToMyNeighborhood (plAgeLinkStruct * link) { StrToUnicode(str, kNeighborhoodAgeFilename, arrsize(str)); ageInfo.SetAgeFilename(str); - RelVaultNode * node; - if (nil != (node = rvnFldr->GetChildNodeIncRef(templateNode, 2))) { + hsRef node; + if (node = rvnFldr->GetChildNode(templateNode, 2)) { VaultAgeInfoNode info(node); info.CopyTo(link->GetAgeInfo()); - node->UnRef(); } - rvnFldr->UnRef(); return node != nil; } //============================================================================ bool VaultGetLinkToMyPersonalAge (plAgeLinkStruct * link) { - RelVaultNode * rvnFldr = VaultGetAgesIOwnFolderIncRef(); + hsRef rvnFldr = VaultGetAgesIOwnFolder(); if (!rvnFldr) return false; @@ -2391,20 +2326,18 @@ bool VaultGetLinkToMyPersonalAge (plAgeLinkStruct * link) { StrToUnicode(str, kPersonalAgeFilename, arrsize(str)); ageInfo.SetAgeFilename(str); - RelVaultNode * node; - if (nil != (node = rvnFldr->GetChildNodeIncRef(templateNode, 2))) { + hsRef node; + if (node = rvnFldr->GetChildNode(templateNode, 2)) { VaultAgeInfoNode info(node); info.CopyTo(link->GetAgeInfo()); - node->UnRef(); } - rvnFldr->UnRef(); return node != nil; } //============================================================================ bool VaultGetLinkToCity (plAgeLinkStruct * link) { - RelVaultNode * rvnFldr = VaultGetAgesIOwnFolderIncRef(); + hsRef rvnFldr = VaultGetAgesIOwnFolder(); if (!rvnFldr) return false; @@ -2416,23 +2349,21 @@ bool VaultGetLinkToCity (plAgeLinkStruct * link) { StrToUnicode(str, kCityAgeFilename, arrsize(str)); ageInfo.SetAgeFilename(str); - RelVaultNode * node; - if (nil != (node = rvnFldr->GetChildNodeIncRef(templateNode, 2))) { + hsRef node; + if (node = rvnFldr->GetChildNode(templateNode, 2)) { VaultAgeInfoNode info(node); info.CopyTo(link->GetAgeInfo()); - node->UnRef(); } - rvnFldr->UnRef(); return node != nil; } //============================================================================ -RelVaultNode * VaultGetOwnedAgeLinkIncRef (const plAgeInfoStruct * info) { +hsRef VaultGetOwnedAgeLink (const plAgeInfoStruct * info) { - RelVaultNode * rvnLink = nil; + hsRef rvnLink; - if (RelVaultNode * rvnFldr = VaultGetAgesIOwnFolderIncRef()) { + if (hsRef rvnFldr = VaultGetAgesIOwnFolder()) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_AgeInfo); @@ -2447,25 +2378,22 @@ RelVaultNode * VaultGetOwnedAgeLinkIncRef (const plAgeInfoStruct * info) { ageInfo.SetAgeInstanceGuid(*info->GetAgeInstanceGuid()); } - if (RelVaultNode * rvnInfo = rvnFldr->GetChildNodeIncRef(templateNode, 2)) { + if (hsRef rvnInfo = rvnFldr->GetChildNode(templateNode, 2)) { templateNode->ClearFieldFlags(); templateNode->SetNodeType(plVault::kNodeType_AgeLink); - rvnLink = rvnInfo->GetParentNodeIncRef(templateNode, 1); - rvnInfo->UnRef(); + rvnLink = rvnInfo->GetParentNode(templateNode, 1); } - - rvnFldr->UnRef(); } return rvnLink; } //============================================================================ -RelVaultNode * VaultGetOwnedAgeInfoIncRef (const plAgeInfoStruct * info) { +hsRef VaultGetOwnedAgeInfo (const plAgeInfoStruct * info) { - RelVaultNode * rvnInfo = nil; + hsRef rvnInfo; - if (RelVaultNode * rvnFldr = VaultGetAgesIOwnFolderIncRef()) { + if (hsRef rvnFldr = VaultGetAgesIOwnFolder()) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_AgeInfo); @@ -2480,9 +2408,7 @@ RelVaultNode * VaultGetOwnedAgeInfoIncRef (const plAgeInfoStruct * info) { ageInfo.SetAgeInstanceGuid(*info->GetAgeInstanceGuid()); } - rvnInfo = rvnFldr->GetChildNodeIncRef(templateNode, 2); - - rvnFldr->UnRef(); + rvnInfo = rvnFldr->GetChildNode(templateNode, 2); } return rvnInfo; @@ -2491,15 +2417,12 @@ RelVaultNode * VaultGetOwnedAgeInfoIncRef (const plAgeInfoStruct * info) { //============================================================================ bool VaultGetOwnedAgeLink (const plAgeInfoStruct * info, plAgeLinkStruct * link) { bool result = false; - if (RelVaultNode * rvnLink = VaultGetOwnedAgeLinkIncRef(info)) { - if (RelVaultNode * rvnInfo = rvnLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef rvnLink = VaultGetOwnedAgeLink(info)) { + if (hsRef rvnInfo = rvnLink->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { VaultAgeInfoNode ageInfo(rvnInfo); ageInfo.CopyTo(link->GetAgeInfo()); - rvnInfo->UnRef(); result = true; } - - rvnLink->UnRef(); } return result; @@ -2514,8 +2437,7 @@ bool VaultFindOrCreateChildAgeLinkAndWait (const wchar_t ownedAgeName[], const p //============================================================================ bool VaultAddOwnedAgeSpawnPoint (const plUUID& ageInstId, const plSpawnPointInfo & spawnPt) { - RelVaultNode * fldr = nil; - RelVaultNode * link = nil; + hsRef fldr, link; for (;;) { if (spawnPt.GetName().IsEmpty()) @@ -2523,7 +2445,7 @@ bool VaultAddOwnedAgeSpawnPoint (const plUUID& ageInstId, const plSpawnPointInfo if (spawnPt.GetTitle().IsEmpty()) break; - fldr = VaultGetAgesIOwnFolderIncRef(); + fldr = VaultGetAgesIOwnFolder(); if (!fldr) break; @@ -2536,15 +2458,13 @@ bool VaultAddOwnedAgeSpawnPoint (const plUUID& ageInstId, const plSpawnPointInfo access.SetAgeInstanceGuid(ageInstId); for (unsigned i = 0; i < nodeIds.Count(); ++i) { - link = VaultGetNodeIncRef(nodeIds[i]); + link = VaultGetNode(nodeIds[i]); if (!link) continue; - if (RelVaultNode * info = link->GetChildNodeIncRef(templateNode, 1)) { + if (link->GetChildNode(templateNode, 1)) { VaultAgeLinkNode access(link); access.AddSpawnPoint(spawnPt); - info->UnRef(); - link->UnRef(); - link = nil; + link = nullptr; break; } } @@ -2552,18 +2472,13 @@ bool VaultAddOwnedAgeSpawnPoint (const plUUID& ageInstId, const plSpawnPointInfo break; } - if (fldr) - fldr->UnRef(); - if (link) - link->UnRef(); - return true; } //============================================================================ bool VaultSetOwnedAgePublicAndWait (const plAgeInfoStruct * info, bool publicOrNot) { - if (RelVaultNode * rvnLink = VaultGetOwnedAgeLinkIncRef(info)) { - if (RelVaultNode * rvnInfo = rvnLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef rvnLink = VaultGetOwnedAgeLink(info)) { + if (hsRef rvnInfo = rvnLink->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { NetCliAuthSetAgePublic(rvnInfo->GetNodeId(), publicOrNot); VaultAgeInfoNode access(rvnInfo); @@ -2578,19 +2493,16 @@ bool VaultSetOwnedAgePublicAndWait (const plAgeInfoStruct * info, bool publicOrN msg->SetResultCode(true); msg->GetArgs()->AddString(plNetCommon::VaultTaskArgs::kAgeFilename, ageName); msg->Send(); - - rvnInfo->UnRef(); } - rvnLink->UnRef(); } return true; } //============================================================================ -RelVaultNode * VaultGetVisitAgeLinkIncRef (const plAgeInfoStruct * info) { - RelVaultNode * rvnLink = nil; +hsRef VaultGetVisitAgeLink (const plAgeInfoStruct * info) { + hsRef rvnLink; - if (RelVaultNode * rvnFldr = VaultGetAgesICanVisitFolderIncRef()) { + if (hsRef rvnFldr = VaultGetAgesICanVisitFolder()) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_AgeInfo); @@ -2605,14 +2517,11 @@ RelVaultNode * VaultGetVisitAgeLinkIncRef (const plAgeInfoStruct * info) { ageInfo.SetAgeInstanceGuid(*info->GetAgeInstanceGuid()); } - if (RelVaultNode * rvnInfo = rvnFldr->GetChildNodeIncRef(templateNode, 2)) { + if (hsRef rvnInfo = rvnFldr->GetChildNode(templateNode, 2)) { templateNode->ClearFieldFlags(); templateNode->SetNodeType(plVault::kNodeType_AgeLink); - rvnLink = rvnInfo->GetParentNodeIncRef(templateNode, 1); - rvnInfo->UnRef(); + rvnLink = rvnInfo->GetParentNode(templateNode, 1); } - - rvnFldr->UnRef(); } return rvnLink; @@ -2620,14 +2529,13 @@ RelVaultNode * VaultGetVisitAgeLinkIncRef (const plAgeInfoStruct * info) { //============================================================================ bool VaultGetVisitAgeLink (const plAgeInfoStruct * info, class plAgeLinkStruct * link) { - RelVaultNode * rvn = VaultGetVisitAgeLinkIncRef(info); + hsRef rvn = VaultGetVisitAgeLink(info); if (!rvn) return false; VaultAgeLinkNode ageLink(rvn); ageLink.CopyTo(link); - rvn->UnRef(); return true; } @@ -2706,10 +2614,8 @@ bool VaultRegisterOwnedAgeAndWait (const plAgeLinkStruct * link) { bool result = false; for (;;) { - if (RelVaultNode * rvn = VaultGetAgesIOwnFolderIncRef()) { + if (hsRef rvn = VaultGetAgesIOwnFolder()) agesIOwnId = rvn->GetNodeId(); - rvn->UnRef(); - } else { LogMsg(kLogError, L"RegisterOwnedAge: Failed to get player's AgesIOwnFolder"); break; @@ -2810,19 +2716,14 @@ bool VaultRegisterOwnedAgeAndWait (const plAgeLinkStruct * link) { memset(¶m3, 0, sizeof(param3)); unsigned ageOwnersId = 0; - if (RelVaultNode * rvnAgeInfo = VaultGetNodeIncRef(ageInfoId)) { - if (RelVaultNode * rvnAgeOwners = rvnAgeInfo->GetChildPlayerInfoListNodeIncRef(plVault::kAgeOwnersFolder, 1)) { + if (hsRef rvnAgeInfo = VaultGetNode(ageInfoId)) { + if (hsRef rvnAgeOwners = rvnAgeInfo->GetChildPlayerInfoListNode(plVault::kAgeOwnersFolder, 1)) ageOwnersId = rvnAgeOwners->GetNodeId(); - rvnAgeOwners->UnRef(); - } - rvnAgeInfo->UnRef(); } unsigned playerInfoId = 0; - if (RelVaultNode * rvnPlayerInfo = VaultGetPlayerInfoNodeIncRef()) { + if (hsRef rvnPlayerInfo = VaultGetPlayerInfoNode()) playerInfoId = rvnPlayerInfo->GetNodeId(); - rvnPlayerInfo->UnRef(); - } VaultAddChildNode( agesIOwnId, @@ -2869,10 +2770,9 @@ bool VaultRegisterOwnedAgeAndWait (const plAgeLinkStruct * link) { } // Copy the link spawn point to the link node - if (RelVaultNode * node = VaultGetNodeIncRef(ageLinkId)) { + if (hsRef node = VaultGetNode(ageLinkId)) { VaultAgeLinkNode access(node); access.AddSpawnPoint(link->SpawnPoint()); - node->UnRef(); } result = true; @@ -2929,19 +2829,15 @@ namespace _VaultRegisterOwnedAge { aln.AddSpawnPoint(*(p->fSpawn)); // Make some refs - RelVaultNode* agesIOwn = VaultGetAgesIOwnFolderIncRef(); - RelVaultNode* plyrInfo = VaultGetPlayerInfoNodeIncRef(); + hsRef agesIOwn = VaultGetAgesIOwnFolder(); + hsRef plyrInfo = VaultGetPlayerInfoNode(); VaultAddChildNode(agesIOwn->GetNodeId(), node->GetNodeId(), 0, (FVaultAddChildNodeCallback)_AddAgeLinkNode, nil); VaultAddChildNode(node->GetNodeId(), (uint32_t)((uintptr_t)p->fAgeInfoId), 0, (FVaultAddChildNodeCallback)_AddAgeInfoNode, nil); // Add our PlayerInfo to important places - if (RelVaultNode* rvnAgeInfo = VaultGetNodeIncRef((uint32_t)((uintptr_t)p->fAgeInfoId))) { - if (RelVaultNode* rvnAgeOwners = rvnAgeInfo->GetChildPlayerInfoListNodeIncRef(plVault::kAgeOwnersFolder, 1)) { + if (hsRef rvnAgeInfo = VaultGetNode((uint32_t)((uintptr_t)p->fAgeInfoId))) { + if (hsRef rvnAgeOwners = rvnAgeInfo->GetChildPlayerInfoListNode(plVault::kAgeOwnersFolder, 1)) VaultAddChildNode(rvnAgeOwners->GetNodeId(), plyrInfo->GetNodeId(), 0, (FVaultAddChildNodeCallback)_AddPlayerInfoNode, nil); - rvnAgeOwners->UnRef(); - } - - rvnAgeInfo->UnRef(); } // Fire off vault callbacks @@ -2952,8 +2848,6 @@ namespace _VaultRegisterOwnedAge { msg->Send(); // Don't leak memory - agesIOwn->UnRef(); - plyrInfo->UnRef(); delete p; } @@ -2986,7 +2880,7 @@ namespace _VaultRegisterOwnedAge { void VaultRegisterOwnedAge(const plAgeLinkStruct* link) { using namespace _VaultRegisterOwnedAge; - RelVaultNode* agesIOwn = VaultGetAgesIOwnFolderIncRef(); + hsRef agesIOwn = VaultGetAgesIOwnFolder(); if (agesIOwn == nil) { LogMsg(kLogError, "VaultRegisterOwnedAge: Couldn't find the stupid AgesIOwnfolder!"); return; @@ -3079,10 +2973,8 @@ bool VaultRegisterVisitAgeAndWait (const plAgeLinkStruct * link) { bool result = false; for (;;) { - if (RelVaultNode * rvn = VaultGetAgesICanVisitFolderIncRef()) { + if (hsRef rvn = VaultGetAgesICanVisitFolder()) agesICanVisitId = rvn->GetNodeId(); - rvn->UnRef(); - } else { LogMsg(kLogError, L"RegisterVisitAge: Failed to get player's AgesICanVisitFolder"); break; @@ -3183,19 +3075,14 @@ bool VaultRegisterVisitAgeAndWait (const plAgeLinkStruct * link) { memset(¶m3, 0, sizeof(param3)); unsigned ageVisitorsId = 0; - if (RelVaultNode * rvnAgeInfo = VaultGetNodeIncRef(ageInfoId)) { - if (RelVaultNode * rvnAgeVisitors = rvnAgeInfo->GetChildPlayerInfoListNodeIncRef(plVault::kCanVisitFolder, 1)) { + if (hsRef rvnAgeInfo = VaultGetNode(ageInfoId)) { + if (hsRef rvnAgeVisitors = rvnAgeInfo->GetChildPlayerInfoListNode(plVault::kCanVisitFolder, 1)) ageVisitorsId = rvnAgeVisitors->GetNodeId(); - rvnAgeVisitors->UnRef(); - } - rvnAgeInfo->UnRef(); } unsigned playerInfoId = 0; - if (RelVaultNode * rvnPlayerInfo = VaultGetPlayerInfoNodeIncRef()) { + if (hsRef rvnPlayerInfo = VaultGetPlayerInfoNode()) playerInfoId = rvnPlayerInfo->GetNodeId(); - rvnPlayerInfo->UnRef(); - } VaultAddChildNode( agesICanVisitId, @@ -3242,10 +3129,9 @@ bool VaultRegisterVisitAgeAndWait (const plAgeLinkStruct * link) { } // Copy the link spawn point to the link node - if (RelVaultNode * node = VaultGetNodeIncRef(ageLinkId)) { + if (hsRef node = VaultGetNode(ageLinkId)) { VaultAgeLinkNode access(node); access.AddSpawnPoint(link->SpawnPoint()); - node->UnRef(); } result = true; @@ -3281,20 +3167,16 @@ namespace _VaultRegisterVisitAge { } _Params* p = (_Params*)param; - RelVaultNode* ageInfo = VaultGetNodeIncRef((uint32_t)((uintptr_t)p->fAgeInfoId)); + hsRef ageInfo = VaultGetNode((uint32_t)((uintptr_t)p->fAgeInfoId)); // Add ourselves to the Can Visit folder of the age - if (RelVaultNode * playerInfo = VaultGetPlayerInfoNodeIncRef()) { - if (RelVaultNode* canVisit = ageInfo->GetChildPlayerInfoListNodeIncRef(plVault::kCanVisitFolder, 1)) { + if (hsRef playerInfo = VaultGetPlayerInfoNode()) { + if (hsRef canVisit = ageInfo->GetChildPlayerInfoListNode(plVault::kCanVisitFolder, 1)) VaultAddChildNode(canVisit->GetNodeId(), playerInfo->GetNodeId(), 0, nil, nil); - canVisit->UnRef(); - } - - playerInfo->UnRef(); } // Get our AgesICanVisit folder - if (RelVaultNode* iCanVisit = VaultGetAgesICanVisitFolderIncRef()) { + if (hsRef iCanVisit = VaultGetAgesICanVisitFolder()) { VaultAddChildNode(node->GetNodeId(), ageInfo->GetNodeId(), 0, nil, nil); VaultAddChildNode(iCanVisit->GetNodeId(), node->GetNodeId(), 0, nil, nil); } @@ -3376,16 +3258,14 @@ bool VaultUnregisterOwnedAgeAndWait (const plAgeInfoStruct * info) { bool result = false; for (;;) { - RelVaultNode * rvnLink = VaultGetOwnedAgeLinkIncRef(info); + hsRef rvnLink = VaultGetOwnedAgeLink(info); if (!rvnLink) { result = true; break; // we aren't an owner of the age, just return true } - if (RelVaultNode * rvn = VaultGetAgesIOwnFolderIncRef()) { + if (hsRef rvn = VaultGetAgesIOwnFolder()) agesIOwnId = rvn->GetNodeId(); - rvn->UnRef(); - } else { LogMsg(kLogError, L"UnregisterOwnedAge: Failed to get player's AgesIOwnFolder"); break; // something's wrong with the player vault, it doesn't have a required folder node @@ -3394,21 +3274,14 @@ bool VaultUnregisterOwnedAgeAndWait (const plAgeInfoStruct * info) { ageLinkId = rvnLink->GetNodeId(); unsigned ageOwnersId = 0; - if (RelVaultNode * rvnAgeInfo = rvnLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { - if (RelVaultNode * rvnAgeOwners = rvnAgeInfo->GetChildPlayerInfoListNodeIncRef(plVault::kAgeOwnersFolder, 1)) { + if (hsRef rvnAgeInfo = rvnLink->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef rvnAgeOwners = rvnAgeInfo->GetChildPlayerInfoListNode(plVault::kAgeOwnersFolder, 1)) ageOwnersId = rvnAgeOwners->GetNodeId(); - rvnAgeOwners->UnRef(); - } - rvnAgeInfo->UnRef(); } unsigned playerInfoId = 0; - if (RelVaultNode * rvnPlayerInfo = VaultGetPlayerInfoNodeIncRef()) { + if (hsRef rvnPlayerInfo = VaultGetPlayerInfoNode()) playerInfoId = rvnPlayerInfo->GetNodeId(); - rvnPlayerInfo->UnRef(); - } - - rvnLink->UnRef(); // remove our playerInfo from the ageOwners folder VaultRemoveChildNode(ageOwnersId, playerInfoId, nil, nil); @@ -3440,16 +3313,14 @@ bool VaultUnregisterVisitAgeAndWait (const plAgeInfoStruct * info) { bool result = false; for (;;) { - RelVaultNode * rvnLink = VaultGetVisitAgeLinkIncRef(info); + hsRef rvnLink = VaultGetVisitAgeLink(info); if (!rvnLink) { result = true; break; // we aren't an owner of the age, just return true } - if (RelVaultNode * rvn = VaultGetAgesICanVisitFolderIncRef()) { + if (hsRef rvn = VaultGetAgesICanVisitFolder()) agesICanVisitId = rvn->GetNodeId(); - rvn->UnRef(); - } else { LogMsg(kLogError, L"UnregisterOwnedAge: Failed to get player's AgesICanVisitFolder"); break; // something's wrong with the player vault, it doesn't have a required folder node @@ -3458,21 +3329,14 @@ bool VaultUnregisterVisitAgeAndWait (const plAgeInfoStruct * info) { ageLinkId = rvnLink->GetNodeId(); unsigned ageVisitorsId = 0; - if (RelVaultNode * rvnAgeInfo = rvnLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { - if (RelVaultNode * rvnAgeVisitors = rvnAgeInfo->GetChildPlayerInfoListNodeIncRef(plVault::kCanVisitFolder, 1)) { + if (hsRef rvnAgeInfo = rvnLink->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef rvnAgeVisitors = rvnAgeInfo->GetChildPlayerInfoListNode(plVault::kCanVisitFolder, 1)) ageVisitorsId = rvnAgeVisitors->GetNodeId(); - rvnAgeVisitors->UnRef(); - } - rvnAgeInfo->UnRef(); } unsigned playerInfoId = 0; - if (RelVaultNode * rvnPlayerInfo = VaultGetPlayerInfoNodeIncRef()) { + if (hsRef rvnPlayerInfo = VaultGetPlayerInfoNode()) playerInfoId = rvnPlayerInfo->GetNodeId(); - rvnPlayerInfo->UnRef(); - } - - rvnLink->UnRef(); // remove our playerInfo from the ageVisitors folder VaultRemoveChildNode(ageVisitorsId, playerInfoId, nil, nil); @@ -3497,17 +3361,17 @@ bool VaultUnregisterVisitAgeAndWait (const plAgeInfoStruct * info) { } //============================================================================ -RelVaultNode * VaultFindChronicleEntryIncRef (const wchar_t entryName[], int entryType) { +hsRef VaultFindChronicleEntry (const wchar_t entryName[], int entryType) { - RelVaultNode * result = nil; - if (RelVaultNode * rvnFldr = GetChildFolderNode(GetPlayerNode(), plVault::kChronicleFolder, 1)) { + hsRef result; + if (hsRef rvnFldr = GetChildFolderNode(GetPlayerNode(), plVault::kChronicleFolder, 1)) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_Chronicle); VaultChronicleNode chrn(templateNode); chrn.SetEntryName(entryName); if (entryType >= 0) chrn.SetEntryType(entryType); - if (RelVaultNode * rvnChrn = rvnFldr->GetChildNodeIncRef(templateNode, 255)) + if (hsRef rvnChrn = rvnFldr->GetChildNode(templateNode, 255)) result = rvnChrn; } return result; @@ -3515,10 +3379,8 @@ RelVaultNode * VaultFindChronicleEntryIncRef (const wchar_t entryName[], int ent //============================================================================ bool VaultHasChronicleEntry (const wchar_t entryName[], int entryType) { - if (RelVaultNode * rvn = VaultFindChronicleEntryIncRef(entryName, entryType)) { - rvn->UnRef(); + if (VaultFindChronicleEntry(entryName, entryType)) return true; - } return false; } @@ -3528,11 +3390,11 @@ void VaultAddChronicleEntryAndWait ( int entryType, const wchar_t entryValue[] ) { - if (RelVaultNode * rvnChrn = VaultFindChronicleEntryIncRef(entryName, entryType)) { + if (hsRef rvnChrn = VaultFindChronicleEntry(entryName, entryType)) { VaultChronicleNode chrnNode(rvnChrn); chrnNode.SetEntryValue(entryValue); } - else if (RelVaultNode * rvnFldr = GetChildFolderNode(GetPlayerNode(), plVault::kChronicleFolder, 1)) { + else if (hsRef rvnFldr = GetChildFolderNode(GetPlayerNode(), plVault::kChronicleFolder, 1)) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_Chronicle); VaultChronicleNode chrnNode(templateNode); @@ -3540,30 +3402,22 @@ void VaultAddChronicleEntryAndWait ( chrnNode.SetEntryType(entryType); chrnNode.SetEntryValue(entryValue); ENetError result; - if (RelVaultNode * rvnChrn = VaultCreateNodeAndWaitIncRef(templateNode, &result)) { + if (hsRef rvnChrn = VaultCreateNodeAndWait(templateNode, &result)) VaultAddChildNode(rvnFldr->GetNodeId(), rvnChrn->GetNodeId(), 0, nil, nil); - rvnChrn->UnRef(); - } } } //============================================================================ bool VaultAmIgnoringPlayer (unsigned playerId) { bool retval = false; - if (RelVaultNode * rvnFldr = GetChildPlayerInfoListNode(GetPlayerNode(), plVault::kIgnoreListFolder, 1)) { - rvnFldr->Ref(); - + if (hsRef rvnFldr = GetChildPlayerInfoListNode(GetPlayerNode(), plVault::kIgnoreListFolder, 1)) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_PlayerInfo); VaultPlayerInfoNode pinfoNode(templateNode); pinfoNode.SetPlayerId(playerId); - if (RelVaultNode * rvnPlayerInfo = rvnFldr->GetChildNodeIncRef(templateNode, 1)) { + if (rvnFldr->GetChildNode(templateNode, 1)) retval = true; - rvnPlayerInfo->UnRef(); - } - - rvnFldr->UnRef(); } return retval; @@ -3578,11 +3432,9 @@ unsigned VaultGetKILevel () { //============================================================================ bool VaultGetCCRStatus () { bool retval = false; - if (RelVaultNode * rvnSystem = VaultGetSystemNodeIncRef()) { + if (hsRef rvnSystem = VaultGetSystemNode()) { VaultSystemNode sysNode(rvnSystem); retval = (sysNode.GetCCRStatus() != 0); - - rvnSystem->UnRef(); } return retval; @@ -3591,11 +3443,10 @@ bool VaultGetCCRStatus () { //============================================================================ bool VaultSetCCRStatus (bool online) { bool retval = false; - if (RelVaultNode * rvnSystem = VaultGetSystemNodeIncRef()) { + if (hsRef rvnSystem = VaultGetSystemNode()) { VaultSystemNode sysNode(rvnSystem); sysNode.SetCCRStatus(online ? 1 : 0); - rvnSystem->UnRef(); retval = true; } @@ -3606,7 +3457,7 @@ bool VaultSetCCRStatus (bool online) { void VaultDump (const wchar_t tag[], unsigned vaultId, FStateDump dumpProc) { LogMsg(kLogDebug, L"<---- ID:%u, Begin Vault%*s%s ---->", vaultId, tag ? 1 : 0, L" ", tag); - if (RelVaultNode * rvn = GetNode(vaultId)) + if (hsRef rvn = VaultGetNode(vaultId)) rvn->PrintTree(dumpProc, 0); LogMsg(kLogDebug, L"<---- ID:%u, End Vault%*s%s ---->", vaultId, tag ? 1 : 0, L" ", tag); @@ -3624,23 +3475,17 @@ bool VaultAmInMyPersonalAge () { plAgeInfoStruct info; info.SetAgeFilename(kPersonalAgeFilename); - if (RelVaultNode * rvnLink = VaultGetOwnedAgeLinkIncRef(&info)) { - if (RelVaultNode * rvnInfo = rvnLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef rvnLink = VaultGetOwnedAgeLink(&info)) { + if (hsRef rvnInfo = rvnLink->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { VaultAgeInfoNode ageInfo(rvnInfo); - if (RelVaultNode* currentAgeInfoNode = VaultGetAgeInfoNodeIncRef()) { + if (hsRef currentAgeInfoNode = VaultGetAgeInfoNode()) { VaultAgeInfoNode curAgeInfo(currentAgeInfoNode); if (ageInfo.GetAgeInstanceGuid() == curAgeInfo.GetAgeInstanceGuid()) result = true; - - currentAgeInfoNode->UnRef(); } - - rvnInfo->UnRef(); } - - rvnLink->UnRef(); } return result; @@ -3653,23 +3498,17 @@ bool VaultAmInMyNeighborhoodAge () { plAgeInfoStruct info; info.SetAgeFilename(kNeighborhoodAgeFilename); - if (RelVaultNode * rvnLink = VaultGetOwnedAgeLinkIncRef(&info)) { - if (RelVaultNode * rvnInfo = rvnLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef rvnLink = VaultGetOwnedAgeLink(&info)) { + if (hsRef rvnInfo = rvnLink->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { VaultAgeInfoNode ageInfo(rvnInfo); - if (RelVaultNode* currentAgeInfoNode = VaultGetAgeInfoNodeIncRef()) { + if (hsRef currentAgeInfoNode = VaultGetAgeInfoNode()) { VaultAgeInfoNode curAgeInfo(currentAgeInfoNode); if (ageInfo.GetAgeInstanceGuid() == curAgeInfo.GetAgeInstanceGuid()) result = true; - - currentAgeInfoNode->UnRef(); } - - rvnInfo->UnRef(); } - - rvnLink->UnRef(); } return result; @@ -3679,31 +3518,21 @@ bool VaultAmInMyNeighborhoodAge () { bool VaultAmOwnerOfCurrentAge () { bool result = false; - if (RelVaultNode* currentAgeInfoNode = VaultGetAgeInfoNodeIncRef()) { + if (hsRef currentAgeInfoNode = VaultGetAgeInfoNode()) { VaultAgeInfoNode curAgeInfo(currentAgeInfoNode); - char* ageFilename = StrDupToAnsi(curAgeInfo.GetAgeFilename()); - plAgeInfoStruct info; - info.SetAgeFilename(ageFilename); - - free(ageFilename); + info.SetAgeFilename(plString::FromWchar(curAgeInfo.GetAgeFilename())); - if (RelVaultNode * rvnLink = VaultGetOwnedAgeLinkIncRef(&info)) { + if (hsRef rvnLink = VaultGetOwnedAgeLink(&info)) { - if (RelVaultNode * rvnInfo = rvnLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef rvnInfo = rvnLink->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { VaultAgeInfoNode ageInfo(rvnInfo); if (ageInfo.GetAgeInstanceGuid() == curAgeInfo.GetAgeInstanceGuid()) result = true; - - rvnInfo->UnRef(); } - - rvnLink->UnRef(); } - - currentAgeInfoNode->UnRef(); } return result; @@ -3734,13 +3563,12 @@ bool VaultRegisterMTStationAndWait ( ) { plAgeInfoStruct info; info.SetAgeFilename(kCityAgeFilename); - if (RelVaultNode * rvn = VaultGetOwnedAgeLinkIncRef(&info)) { + if (hsRef rvn = VaultGetOwnedAgeLink(&info)) { char title[MAX_PATH], spawnPt[MAX_PATH]; StrToAnsi(title, stationName, arrsize(title)); StrToAnsi(spawnPt, linkBackSpawnPtObjName, arrsize(spawnPt)); VaultAgeLinkNode link(rvn); link.AddSpawnPoint(plSpawnPointInfo(title, spawnPt)); - rvn->UnRef(); return true; } return false; @@ -3748,9 +3576,7 @@ bool VaultRegisterMTStationAndWait ( //============================================================================ void VaultProcessVisitNote(RelVaultNode * rvnVisit) { - if (RelVaultNode * rvnInbox = VaultGetPlayerInboxFolderIncRef()) { - rvnVisit->Ref(); - + if (hsRef rvnInbox = VaultGetPlayerInboxFolder()) { VaultTextNoteNode visitAcc(rvnVisit); plAgeLinkStruct link; if (visitAcc.GetVisitInfo(link.GetAgeInfo())) { @@ -3759,16 +3585,12 @@ void VaultProcessVisitNote(RelVaultNode * rvnVisit) { } // remove it from the inbox VaultRemoveChildNode(rvnInbox->GetNodeId(), rvnVisit->GetNodeId(), nil, nil); - rvnVisit->UnRef(); - - rvnInbox->UnRef(); } } //============================================================================ void VaultProcessUnvisitNote(RelVaultNode * rvnUnVisit) { - if (RelVaultNode * rvnInbox = VaultGetPlayerInboxFolderIncRef()) { - rvnUnVisit->Ref(); + if (hsRef rvnInbox = VaultGetPlayerInboxFolder()) { VaultTextNoteNode unvisitAcc(rvnUnVisit); plAgeInfoStruct info; if (unvisitAcc.GetVisitInfo(&info)) { @@ -3777,15 +3599,12 @@ void VaultProcessUnvisitNote(RelVaultNode * rvnUnVisit) { } // remove it from the inbox VaultRemoveChildNode(rvnInbox->GetNodeId(), rvnUnVisit->GetNodeId(), nil, nil); - rvnUnVisit->UnRef(); - - rvnInbox->UnRef(); } } //============================================================================ void VaultProcessPlayerInbox () { - if (RelVaultNode * rvnInbox = VaultGetPlayerInboxFolderIncRef()) { + if (hsRef rvnInbox = VaultGetPlayerInboxFolder()) { { // Process new visit requests ARRAY(RelVaultNode*) visits; hsRef templateNode = new RelVaultNode; @@ -3795,7 +3614,7 @@ void VaultProcessPlayerInbox () { rvnInbox->GetChildNodesIncRef(templateNode, 1, &visits); for (unsigned i = 0; i < visits.Count(); ++i) { - RelVaultNode * rvnVisit = visits[i]; + hsRef rvnVisit = visits[i]; VaultTextNoteNode visitAcc(rvnVisit); plAgeLinkStruct link; if (visitAcc.GetVisitInfo(link.GetAgeInfo())) { @@ -3804,7 +3623,6 @@ void VaultProcessPlayerInbox () { } // remove it from the inbox VaultRemoveChildNode(rvnInbox->GetNodeId(), rvnVisit->GetNodeId(), nil, nil); - rvnVisit->UnRef(); } } { // Process new unvisit requests @@ -3816,7 +3634,7 @@ void VaultProcessPlayerInbox () { rvnInbox->GetChildNodesIncRef(templateNode, 1, &unvisits); for (unsigned i = 0; i < unvisits.Count(); ++i) { - RelVaultNode * rvnUnVisit = unvisits[i]; + hsRef rvnUnVisit = unvisits[i]; VaultTextNoteNode unvisitAcc(rvnUnVisit); plAgeInfoStruct info; if (unvisitAcc.GetVisitInfo(&info)) { @@ -3825,11 +3643,8 @@ void VaultProcessPlayerInbox () { } // remove it from the inbox VaultRemoveChildNode(rvnInbox->GetNodeId(), rvnUnVisit->GetNodeId(), nil, nil); - rvnUnVisit->UnRef(); } } - - rvnInbox->UnRef(); } } @@ -3841,128 +3656,121 @@ void VaultProcessPlayerInbox () { ***/ //============================================================================ -static RelVaultNode * GetAgeNode () { +static hsRef GetAgeNode () { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_VNodeMgrAge); if (NetCommGetAge()) templateNode->SetNodeId(NetCommGetAge()->ageVaultId); - RelVaultNode * result = GetNode(templateNode); - return result; + return VaultGetNode(templateNode); } //============================================================================ -RelVaultNode * VaultGetAgeNodeIncRef () { - RelVaultNode * result = nil; +hsRef VaultGetAgeNode () { + hsRef result; hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_VNodeMgrAge); if (NetCommGetAge()) templateNode->SetNodeId(NetCommGetAge()->ageVaultId); - if (RelVaultNode * rvnAge = VaultGetNodeIncRef(templateNode)) + if (hsRef rvnAge = VaultGetNode(templateNode)) result = rvnAge; return result; } //============================================================================ -static RelVaultNode * GetAgeInfoNode () { - RelVaultNode * rvnAge = VaultGetAgeNodeIncRef(); +static hsRef GetAgeInfoNode () { + hsRef rvnAge = VaultGetAgeNode(); if (!rvnAge) - return nil; + return nullptr; - RelVaultNode * result = nil; + hsRef result; hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_AgeInfo); templateNode->SetCreatorId(rvnAge->GetNodeId()); - if (RelVaultNode * rvnAgeInfo = rvnAge->GetChildNodeIncRef(templateNode, 1)) { - rvnAgeInfo->UnRef(); + if (hsRef rvnAgeInfo = rvnAge->GetChildNode(templateNode, 1)) result = rvnAgeInfo; - } - - rvnAge->UnRef(); return result; } //============================================================================ -RelVaultNode * VaultGetAgeInfoNodeIncRef () { - RelVaultNode * rvnAge = VaultGetAgeNodeIncRef(); +hsRef VaultGetAgeInfoNode () { + hsRef rvnAge = VaultGetAgeNode(); if (!rvnAge) - return nil; + return nullptr; - RelVaultNode * result = nil; + hsRef result; hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_AgeInfo); templateNode->SetCreatorId(rvnAge->GetNodeId()); - if (RelVaultNode * rvnAgeInfo = rvnAge->GetChildNodeIncRef(templateNode, 1)) + if (hsRef rvnAgeInfo = rvnAge->GetChildNode(templateNode, 1)) result = rvnAgeInfo; - - rvnAge->UnRef(); return result; } //============================================================================ -RelVaultNode * VaultGetAgeChronicleFolderIncRef () { - if (RelVaultNode * rvn = GetAgeNode()) - return rvn->GetChildFolderNodeIncRef(plVault::kChronicleFolder, 1); +hsRef VaultGetAgeChronicleFolder () { + if (hsRef rvn = GetAgeNode()) + return rvn->GetChildFolderNode(plVault::kChronicleFolder, 1); return nil; } //============================================================================ -RelVaultNode * VaultGetAgeDevicesFolderIncRef () { - if (RelVaultNode * rvn = GetAgeNode()) - return rvn->GetChildFolderNodeIncRef(plVault::kAgeDevicesFolder, 1); +hsRef VaultGetAgeDevicesFolder () { + if (hsRef rvn = GetAgeNode()) + return rvn->GetChildFolderNode(plVault::kAgeDevicesFolder, 1); return nil; } //============================================================================ -RelVaultNode * VaultGetAgeAgeOwnersFolderIncRef () { - if (RelVaultNode * rvn = GetAgeInfoNode()) - return rvn->GetChildPlayerInfoListNodeIncRef(plVault::kAgeOwnersFolder, 1); +hsRef VaultGetAgeAgeOwnersFolder () { + if (hsRef rvn = GetAgeInfoNode()) + return rvn->GetChildPlayerInfoListNode(plVault::kAgeOwnersFolder, 1); return nil; } //============================================================================ -RelVaultNode * VaultGetAgeCanVisitFolderIncRef () { - if (RelVaultNode * rvn = GetAgeInfoNode()) - return rvn->GetChildPlayerInfoListNodeIncRef(plVault::kCanVisitFolder, 1); +hsRef VaultGetAgeCanVisitFolder () { + if (hsRef rvn = GetAgeInfoNode()) + return rvn->GetChildPlayerInfoListNode(plVault::kCanVisitFolder, 1); return nil; } //============================================================================ -RelVaultNode * VaultGetAgePeopleIKnowAboutFolderIncRef () { - if (RelVaultNode * rvn = GetAgeNode()) - return rvn->GetChildPlayerInfoListNodeIncRef(plVault::kPeopleIKnowAboutFolder, 1); +hsRef VaultGetAgePeopleIKnowAboutFolder () { + if (hsRef rvn = GetAgeNode()) + return rvn->GetChildPlayerInfoListNode(plVault::kPeopleIKnowAboutFolder, 1); return nil; } //============================================================================ -RelVaultNode * VaultGetAgeSubAgesFolderIncRef () { - if (RelVaultNode * rvn = GetAgeNode()) - return rvn->GetChildAgeInfoListNodeIncRef(plVault::kSubAgesFolder, 1); +hsRef VaultGetAgeSubAgesFolder () { + if (hsRef rvn = GetAgeNode()) + return rvn->GetChildAgeInfoListNode(plVault::kSubAgesFolder, 1); return nil; } //============================================================================ -RelVaultNode * VaultGetAgePublicAgesFolderIncRef () { +hsRef VaultGetAgePublicAgesFolder () { hsAssert(false, "eric, implement me"); return nil; } //============================================================================ -RelVaultNode * VaultAgeGetBookshelfFolderIncRef () { - if (RelVaultNode * rvn = GetAgeNode()) - return rvn->GetChildAgeInfoListNodeIncRef(plVault::kAgesIOwnFolder, 1); +hsRef VaultAgeGetBookshelfFolder () { + if (hsRef rvn = GetAgeNode()) + return rvn->GetChildAgeInfoListNode(plVault::kAgesIOwnFolder, 1); return nil; } //============================================================================ -RelVaultNode * VaultFindAgeSubAgeLinkIncRef (const plAgeInfoStruct * info) { - RelVaultNode * rvnLink = nil; +hsRef VaultFindAgeSubAgeLink (const plAgeInfoStruct * info) { + hsRef rvnLink; - if (RelVaultNode * rvnFldr = VaultGetAgeSubAgesFolderIncRef()) { + if (hsRef rvnFldr = VaultGetAgeSubAgesFolder()) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_AgeInfo); @@ -3972,21 +3780,18 @@ RelVaultNode * VaultFindAgeSubAgeLinkIncRef (const plAgeInfoStruct * info) { StrToUnicode(str, info->GetAgeFilename(), arrsize(str)); ageInfo.SetAgeFilename(str); - if (RelVaultNode * rvnInfo = rvnFldr->GetChildNodeIncRef(templateNode, 2)) { + if (hsRef rvnInfo = rvnFldr->GetChildNode(templateNode, 2)) { templateNode->ClearFieldFlags(); templateNode->SetNodeType(plVault::kNodeType_AgeLink); - rvnLink = rvnInfo->GetParentNodeIncRef(templateNode, 1); - rvnInfo->UnRef(); + rvnLink = rvnInfo->GetParentNode(templateNode, 1); } - - rvnFldr->UnRef(); } return rvnLink; } //============================================================================ -RelVaultNode * VaultFindAgeChronicleEntryIncRef (const wchar_t entryName[], int entryType) { +hsRef VaultFindAgeChronicleEntry (const wchar_t entryName[], int entryType) { hsAssert(false, "eric, implement me"); return nil; } @@ -4001,20 +3806,19 @@ void VaultAddAgeChronicleEntry ( } //============================================================================ -RelVaultNode * VaultAgeAddDeviceAndWaitIncRef (const wchar_t deviceName[]) { - if (RelVaultNode * existing = VaultAgeGetDeviceIncRef(deviceName)) +hsRef VaultAgeAddDeviceAndWait (const wchar_t deviceName[]) { + if (hsRef existing = VaultAgeGetDevice(deviceName)) return existing; - RelVaultNode * device = nil; - RelVaultNode * folder = nil; + hsRef device, folder; for (;;) { - folder = VaultGetAgeDevicesFolderIncRef(); + folder = VaultGetAgeDevicesFolder(); if (!folder) break; ENetError result; - device = VaultCreateNodeAndWaitIncRef(plVault::kNodeType_TextNote, &result); + device = VaultCreateNodeAndWait(plVault::kNodeType_TextNote, &result); if (!device) break; @@ -4026,64 +3830,55 @@ RelVaultNode * VaultAgeAddDeviceAndWaitIncRef (const wchar_t deviceName[]) { break; } - if (folder) - folder->UnRef(); - return device; } //============================================================================ void VaultAgeRemoveDevice (const wchar_t deviceName[]) { - if (RelVaultNode * folder = VaultGetAgeDevicesFolderIncRef()) { + if (hsRef folder = VaultGetAgeDevicesFolder()) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_TextNote); VaultTextNoteNode access(templateNode); access.SetNoteTitle(deviceName); - if (RelVaultNode * device = folder->GetChildNodeIncRef(templateNode, 1)) { + if (hsRef device = folder->GetChildNode(templateNode, 1)) { VaultRemoveChildNode(folder->GetNodeId(), device->GetNodeId(), nil, nil); - device->UnRef(); if (DeviceInbox * deviceInbox = s_ageDeviceInboxes.Find(CHashKeyStr(deviceName))) delete device; } - folder->UnRef(); } } //============================================================================ bool VaultAgeHasDevice (const wchar_t deviceName[]) { bool found = false; - if (RelVaultNode * folder = VaultGetAgeDevicesFolderIncRef()) { + if (hsRef folder = VaultGetAgeDevicesFolder()) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_TextNote); VaultTextNoteNode access(templateNode); access.SetNoteTitle(deviceName); - if (RelVaultNode * device = folder->GetChildNodeIncRef(templateNode, 1)) { + if (folder->GetChildNode(templateNode, 1)) found = true; - device->UnRef(); - } - folder->UnRef(); } return found; } //============================================================================ -RelVaultNode * VaultAgeGetDeviceIncRef (const wchar_t deviceName[]) { - RelVaultNode * result = nil; - if (RelVaultNode * folder = VaultGetAgeDevicesFolderIncRef()) { +hsRef VaultAgeGetDevice (const wchar_t deviceName[]) { + hsRef result; + if (hsRef folder = VaultGetAgeDevicesFolder()) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_TextNote); VaultTextNoteNode access(templateNode); access.SetNoteTitle(deviceName); - if (RelVaultNode * device = folder->GetChildNodeIncRef(templateNode, 1)) + if (hsRef device = folder->GetChildNode(templateNode, 1)) result = device; - folder->UnRef(); } return result; } //============================================================================ -RelVaultNode * VaultAgeSetDeviceInboxAndWaitIncRef (const wchar_t deviceName[], const wchar_t inboxName[]) { +hsRef VaultAgeSetDeviceInboxAndWait (const wchar_t deviceName[], const wchar_t inboxName[]) { DeviceInbox * devInbox = s_ageDeviceInboxes.Find(CHashKeyStr(deviceName)); if (devInbox) { StrCopy(devInbox->inboxName, inboxName, arrsize(devInbox->inboxName)); @@ -4095,20 +3890,19 @@ RelVaultNode * VaultAgeSetDeviceInboxAndWaitIncRef (const wchar_t deviceName[], // if we found the inbox or its a global inbox then return here, otherwise if its the default inbox and // it wasn't found then continue on and create the inbox - RelVaultNode * existing = VaultAgeGetDeviceInboxIncRef(deviceName); + hsRef existing = VaultAgeGetDeviceInbox(deviceName); if (existing || StrCmp(inboxName, DEFAULT_DEVICE_INBOX) != 0) return existing; - RelVaultNode * device = nil; - RelVaultNode * inbox = nil; + hsRef device, inbox; for (;;) { - device = VaultAgeGetDeviceIncRef(deviceName); + device = VaultAgeGetDevice(deviceName); if (!device) break; ENetError result; - inbox = VaultCreateNodeAndWaitIncRef(plVault::kNodeType_Folder, &result); + inbox = VaultCreateNodeAndWait(plVault::kNodeType_Folder, &result); if (!inbox) break; @@ -4124,20 +3918,20 @@ RelVaultNode * VaultAgeSetDeviceInboxAndWaitIncRef (const wchar_t deviceName[], } //============================================================================ -RelVaultNode * VaultAgeGetDeviceInboxIncRef (const wchar_t deviceName[]) { - RelVaultNode * result = nil; +hsRef VaultAgeGetDeviceInbox (const wchar_t deviceName[]) { + hsRef result; DeviceInbox * devInbox = s_ageDeviceInboxes.Find(CHashKeyStr(deviceName)); if (devInbox) { - RelVaultNode * parentNode = nil; + hsRef parentNode; const wchar_t * inboxName = nil; if (StrCmp(devInbox->inboxName, DEFAULT_DEVICE_INBOX) == 0) { - parentNode = VaultAgeGetDeviceIncRef(deviceName); + parentNode = VaultAgeGetDevice(deviceName); } else { - parentNode = VaultGetGlobalInboxIncRef(); + parentNode = VaultGetGlobalInbox(); } if (parentNode) { @@ -4146,8 +3940,7 @@ RelVaultNode * VaultAgeGetDeviceInboxIncRef (const wchar_t deviceName[]) { VaultFolderNode access(templateNode); access.SetFolderType(plVault::kDeviceInboxFolder); access.SetFolderName(devInbox->inboxName); - result = parentNode->GetChildNodeIncRef(templateNode, 1); - parentNode->UnRef(); + result = parentNode->GetChildNode(templateNode, 1); } } return result; @@ -4163,30 +3956,26 @@ void VaultClearDeviceInboxMap () { //============================================================================ bool VaultAgeGetAgeSDL (plStateDataRecord * out) { bool result = false; - if (RelVaultNode * rvn = VaultGetAgeInfoNodeIncRef()) { - if (RelVaultNode * rvnSdl = rvn->GetChildNodeIncRef(plVault::kNodeType_SDL, 1)) { + if (hsRef rvn = VaultGetAgeInfoNode()) { + if (hsRef rvnSdl = rvn->GetChildNode(plVault::kNodeType_SDL, 1)) { VaultSDLNode sdl(rvnSdl); result = sdl.GetStateDataRecord(out, plSDL::kKeepDirty); if (!result) { sdl.InitStateDataRecord(sdl.GetSDLName()); result = sdl.GetStateDataRecord(out, plSDL::kKeepDirty); } - rvnSdl->UnRef(); } - rvn->UnRef(); } return result; } //============================================================================ void VaultAgeUpdateAgeSDL (const plStateDataRecord * rec) { - if (RelVaultNode * rvn = VaultGetAgeInfoNodeIncRef()) { - if (RelVaultNode * rvnSdl = rvn->GetChildNodeIncRef(plVault::kNodeType_SDL, 1)) { + if (hsRef rvn = VaultGetAgeInfoNode()) { + if (hsRef rvnSdl = rvn->GetChildNode(plVault::kNodeType_SDL, 1)) { VaultSDLNode sdl(rvnSdl); sdl.SetStateDataRecord(rec, plSDL::kDirtyOnly | plSDL::kTimeStampOnRead); - rvnSdl->UnRef(); } - rvn->UnRef(); } } @@ -4197,11 +3986,11 @@ unsigned VaultAgeGetAgeTime () { } //============================================================================ -RelVaultNode * VaultGetSubAgeLinkIncRef (const plAgeInfoStruct * info) { +hsRef VaultGetSubAgeLink (const plAgeInfoStruct * info) { - RelVaultNode * rvnLink = nil; + hsRef rvnLink; - if (RelVaultNode * rvnFldr = VaultGetAgeSubAgesFolderIncRef()) { + if (hsRef rvnFldr = VaultGetAgeSubAgesFolder()) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_AgeInfo); @@ -4211,14 +4000,11 @@ RelVaultNode * VaultGetSubAgeLinkIncRef (const plAgeInfoStruct * info) { StrToUnicode(str, info->GetAgeFilename(), arrsize(str)); ageInfo.SetAgeFilename(str); - if (RelVaultNode * rvnInfo = rvnFldr->GetChildNodeIncRef(templateNode, 2)) { + if (hsRef rvnInfo = rvnFldr->GetChildNode(templateNode, 2)) { templateNode->ClearFieldFlags(); templateNode->SetNodeType(plVault::kNodeType_AgeLink); - rvnLink = rvnInfo->GetParentNodeIncRef(templateNode, 1); - rvnInfo->UnRef(); + rvnLink = rvnInfo->GetParentNode(templateNode, 1); } - - rvnFldr->UnRef(); } return rvnLink; @@ -4227,15 +4013,12 @@ RelVaultNode * VaultGetSubAgeLinkIncRef (const plAgeInfoStruct * info) { //============================================================================ bool VaultAgeGetSubAgeLink (const plAgeInfoStruct * info, plAgeLinkStruct * link) { bool result = false; - if (RelVaultNode * rvnLink = VaultGetSubAgeLinkIncRef(info)) { - if (RelVaultNode * rvnInfo = rvnLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef rvnLink = VaultGetSubAgeLink(info)) { + if (hsRef rvnInfo = rvnLink->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { VaultAgeInfoNode ageInfo(rvnInfo); ageInfo.CopyTo(link->GetAgeInfo()); - rvnInfo->UnRef(); result = true; } - - rvnLink->UnRef(); } return result; @@ -4311,14 +4094,12 @@ bool VaultAgeFindOrCreateSubAgeLinkAndWait ( plAgeLinkStruct * link, const plUUID& parentAgeInstId ) { - if (RelVaultNode * rvnLink = VaultFindAgeSubAgeLinkIncRef(info)) { + if (hsRef rvnLink = VaultFindAgeSubAgeLink(info)) { VaultAgeLinkNode linkAcc(rvnLink); linkAcc.CopyTo(link); - if (RelVaultNode * rvnInfo = rvnLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef rvnInfo = rvnLink->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { VaultAgeInfoNode infoAcc(rvnInfo); infoAcc.CopyTo(link->GetAgeInfo()); - rvnInfo->UnRef(); - rvnLink->UnRef(); return true; } } @@ -4329,10 +4110,8 @@ bool VaultAgeFindOrCreateSubAgeLinkAndWait ( unsigned ageInfoId; unsigned ageLinkId; - if (RelVaultNode * rvnSubAges = VaultGetAgeSubAgesFolderIncRef()) { + if (hsRef rvnSubAges = VaultGetAgeSubAgesFolder()) subAgesId = rvnSubAges->GetNodeId(); - rvnSubAges->UnRef(); - } else { LogMsg(kLogError, L"CreateSubAge: Failed to get ages's SubAges folder"); return false; @@ -4454,16 +4233,14 @@ bool VaultAgeFindOrCreateSubAgeLinkAndWait ( } } - if (RelVaultNode * rvnLink = VaultGetNodeIncRef(ageLinkId)) { + if (hsRef rvnLink = VaultGetNode(ageLinkId)) { VaultAgeLinkNode linkAcc(rvnLink); linkAcc.CopyTo(link); - rvnLink->UnRef(); } - if (RelVaultNode * rvnInfo = VaultGetNodeIncRef(ageInfoId)) { + if (hsRef rvnInfo = VaultGetNode(ageInfoId)) { VaultAgeInfoNode infoAcc(rvnInfo); infoAcc.CopyTo(link->GetAgeInfo()); - rvnInfo->UnRef(); } return true; @@ -4479,10 +4256,9 @@ namespace _VaultCreateSubAge { // Add the children to the right places VaultAddChildNode(node->GetNodeId(), (uint32_t)((uintptr_t)param), 0, nil, nil); - if (RelVaultNode* saFldr = VaultGetAgeSubAgesFolderIncRef()) { + if (hsRef saFldr = VaultGetAgeSubAgesFolder()) VaultAddChildNode(saFldr->GetNodeId(), node->GetNodeId(), 0, nil, nil); - saFldr->UnRef(); - } else + else LogMsg(kLogError, "CreateSubAge: Couldn't find SubAges folder (async)"); // Send the VaultNotify that the plNetLinkingMgr wants... @@ -4528,17 +4304,15 @@ bool VaultAgeFindOrCreateSubAgeLink(const plAgeInfoStruct* info, plAgeLinkStruct using namespace _VaultCreateSubAge; // First, try to find an already existing subage - if (RelVaultNode* rvnLink = VaultGetSubAgeLinkIncRef(info)) { + if (hsRef rvnLink = VaultGetSubAgeLink(info)) { VaultAgeLinkNode accLink(rvnLink); accLink.CopyTo(link); - if (RelVaultNode* rvnInfo = rvnLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef rvnInfo = rvnLink->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { VaultAgeInfoNode accInfo(rvnInfo); accInfo.CopyTo(link->GetAgeInfo()); - rvnInfo->UnRef(); } - rvnLink->UnRef(); return true; } @@ -4629,19 +4403,17 @@ bool VaultAgeFindOrCreateChildAgeLinkAndWait ( unsigned ageLinkId; { // Get id of child ages folder - RelVaultNode * rvnAgeInfo = nil; + hsRef rvnAgeInfo; if (parentAgeName) { char ansi[MAX_PATH]; StrToAnsi(ansi, parentAgeName, arrsize(ansi)); plAgeInfoStruct pinfo; pinfo.SetAgeFilename(ansi); - if (RelVaultNode * rvnAgeLink = VaultGetOwnedAgeLinkIncRef(&pinfo)) { - rvnAgeInfo = rvnAgeLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1); - rvnAgeLink->UnRef(); - } + if (hsRef rvnAgeLink = VaultGetOwnedAgeLink(&pinfo)) + rvnAgeInfo = rvnAgeLink->GetChildNode(plVault::kNodeType_AgeInfo, 1); } else { - rvnAgeInfo = VaultGetAgeInfoNodeIncRef(); + rvnAgeInfo = VaultGetAgeInfoNode(); } if (!rvnAgeInfo) { @@ -4649,19 +4421,17 @@ bool VaultAgeFindOrCreateChildAgeLinkAndWait ( return false; } - RelVaultNode * rvnChildAges; - if (nil != (rvnChildAges = rvnAgeInfo->GetChildAgeInfoListNodeIncRef(plVault::kChildAgesFolder, 1))) { + hsRef rvnChildAges; + if (rvnChildAges = rvnAgeInfo->GetChildAgeInfoListNode(plVault::kChildAgesFolder, 1)) { childAgesId = rvnChildAges->GetNodeId(); } else { - rvnAgeInfo->UnRef(); LogMsg(kLogError, L"CreateChildAge: Failed to get ages's ChildAges folder"); return false; } - rvnAgeInfo->UnRef(); // Check for existing child age in folder - RelVaultNode * rvnLink = nil; + hsRef rvnLink; hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_AgeInfo); @@ -4670,19 +4440,15 @@ bool VaultAgeFindOrCreateChildAgeLinkAndWait ( StrToUnicode(str, info->GetAgeFilename(), arrsize(str)); ageInfo.SetAgeFilename(str); - if (RelVaultNode * rvnInfo = rvnChildAges->GetChildNodeIncRef(templateNode, 2)) { + if (hsRef rvnInfo = rvnChildAges->GetChildNode(templateNode, 2)) { templateNode->ClearFieldFlags(); templateNode->SetNodeType(plVault::kNodeType_AgeLink); - rvnLink = rvnInfo->GetParentNodeIncRef(templateNode, 1); - rvnInfo->UnRef(); + rvnLink = rvnInfo->GetParentNode(templateNode, 1); } - rvnChildAges->UnRef(); - if (rvnLink) { VaultAgeLinkNode access(rvnLink); access.CopyTo(link); - rvnLink->UnRef(); return true; } } @@ -4692,10 +4458,9 @@ bool VaultAgeFindOrCreateChildAgeLinkAndWait ( memset(¶m, 0, sizeof(param)); plUUID parentAgeInstId; - if (RelVaultNode * rvnAge = VaultGetAgeNodeIncRef()) { + if (hsRef rvnAge = VaultGetAgeNode()) { VaultAgeNode access(rvnAge); parentAgeInstId = access.GetAgeInstanceGuid(); - rvnAge->UnRef(); } VaultInitAge( @@ -4810,16 +4575,14 @@ bool VaultAgeFindOrCreateChildAgeLinkAndWait ( } } - if (RelVaultNode * rvnLink = VaultGetNodeIncRef(ageLinkId)) { + if (hsRef rvnLink = VaultGetNode(ageLinkId)) { VaultAgeLinkNode linkAcc(rvnLink); linkAcc.CopyTo(link); - rvnLink->UnRef(); } - if (RelVaultNode * rvnInfo = VaultGetNodeIncRef(ageInfoId)) { + if (hsRef rvnInfo = VaultGetNode(ageInfoId)) { VaultAgeInfoNode infoAcc(rvnInfo); infoAcc.CopyTo(link->GetAgeInfo()); - rvnInfo->UnRef(); } return true; @@ -4904,12 +4667,11 @@ uint8_t VaultAgeFindOrCreateChildAgeLink( plAgeInfoStruct search; search.SetAgeFilename(name); - RelVaultNode* rvnParentInfo = nil; - if (RelVaultNode* rvnParentLink = VaultGetOwnedAgeLinkIncRef(&search)) { - rvnParentInfo = rvnParentLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1); - rvnParentLink->UnRef(); - } else // Fallback to current age - rvnParentInfo = VaultGetAgeInfoNodeIncRef(); + hsRef rvnParentInfo; + if (hsRef rvnParentLink = VaultGetOwnedAgeLink(&search)) + rvnParentInfo = rvnParentLink->GetChildNode(plVault::kNodeType_AgeInfo, 1); + else // Fallback to current age + rvnParentInfo = VaultGetAgeInfoNode(); // Test to make sure nothing went horribly wrong... if (rvnParentInfo == nil) { @@ -4919,28 +4681,24 @@ uint8_t VaultAgeFindOrCreateChildAgeLink( // Still here? Try to find the Child Ages folder uint8_t retval = hsFail; - if (RelVaultNode* rvnChildAges = rvnParentInfo->GetChildAgeInfoListNodeIncRef(plVault::kChildAgesFolder, 1)) { + if (hsRef rvnChildAges = rvnParentInfo->GetChildAgeInfoListNode(plVault::kChildAgesFolder, 1)) { wchar_t hack[MAX_PATH]; StrToUnicode(hack, info->GetAgeFilename(), arrsize(hack)); // Search for our age - NetVaultNode* temp = new NetVaultNode; - temp->Ref(); + hsRef temp = new NetVaultNode; temp->SetNodeType(plVault::kNodeType_AgeInfo); VaultAgeInfoNode theAge(temp); theAge.SetAgeFilename(hack); - if (RelVaultNode* rvnAgeInfo = rvnChildAges->GetChildNodeIncRef(temp, 2)) { - RelVaultNode* rvnAgeLink = rvnAgeInfo->GetParentAgeLinkIncRef(); + if (hsRef rvnAgeInfo = rvnChildAges->GetChildNode(temp, 2)) { + hsRef rvnAgeLink = rvnAgeInfo->GetParentAgeLink(); VaultAgeLinkNode accAgeLink(rvnAgeLink); accAgeLink.CopyTo(link); VaultAgeInfoNode accAgeInfo(rvnAgeInfo); accAgeInfo.CopyTo(link->GetAgeInfo()); - rvnAgeLink->UnRef(); - rvnAgeInfo->UnRef(); - retval = true; } else { _Params* p = new _Params; @@ -4955,12 +4713,8 @@ uint8_t VaultAgeFindOrCreateChildAgeLink( ); retval = false; } - - temp->UnRef(); - rvnChildAges->UnRef(); } - rvnParentInfo->UnRef(); return retval; } @@ -5082,29 +4836,27 @@ void VaultCull (unsigned vaultId) { ***/ //============================================================================ -RelVaultNode * VaultGetSystemNodeIncRef () { - RelVaultNode * result = nil; - if (RelVaultNode * player = VaultGetPlayerNodeIncRef()) { +hsRef VaultGetSystemNode () { + hsRef result; + if (hsRef player = VaultGetPlayerNode()) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_System); - if (RelVaultNode * systemNode = player->GetChildNodeIncRef(templateNode, 1)) + if (hsRef systemNode = player->GetChildNode(templateNode, 1)) result = systemNode; - player->UnRef(); } return result; } //============================================================================ -RelVaultNode * VaultGetGlobalInboxIncRef () { - RelVaultNode * result = nil; - if (RelVaultNode * system = VaultGetSystemNodeIncRef()) { +hsRef VaultGetGlobalInbox () { + hsRef result; + if (hsRef system = VaultGetSystemNode()) { hsRef templateNode = new NetVaultNode; templateNode->SetNodeType(plVault::kNodeType_Folder); VaultFolderNode folder(templateNode); folder.SetFolderType(plVault::kGlobalInboxFolder); - if (RelVaultNode * inbox = system->GetChildNodeIncRef(templateNode, 1)) + if (hsRef inbox = system->GetChildNode(templateNode, 1)) result = inbox; - system->UnRef(); } return result; } diff --git a/Sources/Plasma/PubUtilLib/plVault/plVaultClientApi.h b/Sources/Plasma/PubUtilLib/plVault/plVaultClientApi.h index c6c6c47a..04d3546a 100644 --- a/Sources/Plasma/PubUtilLib/plVault/plVaultClientApi.h +++ b/Sources/Plasma/PubUtilLib/plVault/plVaultClientApi.h @@ -126,28 +126,28 @@ struct RelVaultNode : NetVaultNode { unsigned maxDepth ); - // returns first matching node found - RelVaultNode * GetParentNodeIncRef ( + // returns first matching node found + hsRef GetParentNode ( NetVaultNode * templateNode, unsigned maxDepth ); - RelVaultNode * GetChildNodeIncRef ( + hsRef GetChildNode ( NetVaultNode * templateNode, unsigned maxDepth ); - RelVaultNode * GetChildNodeIncRef ( + hsRef GetChildNode ( unsigned nodeType, unsigned maxDepth ); - RelVaultNode * GetChildFolderNodeIncRef ( + hsRef GetChildFolderNode ( unsigned folderType, unsigned maxDepth ); - RelVaultNode * GetChildPlayerInfoListNodeIncRef ( + hsRef GetChildPlayerInfoListNode ( unsigned folderType, unsigned maxDepth ); - RelVaultNode * GetChildAgeInfoListNodeIncRef ( + hsRef GetChildAgeInfoListNode ( unsigned folderType, unsigned maxDepth ); @@ -183,7 +183,7 @@ struct RelVaultNode : NetVaultNode { void PrintTree (FStateDump dumpProc, unsigned level); // AgeInfoNode-specific (and it checks!) - RelVaultNode * GetParentAgeLinkIncRef (); + hsRef GetParentAgeLink (); }; @@ -204,12 +204,9 @@ void VaultUpdate (); * ***/ -RelVaultNode * VaultGetNodeIncRef ( - unsigned nodeId -); -RelVaultNode * VaultGetNodeIncRef ( - NetVaultNode * templateNode -); +hsRef VaultGetNode(unsigned nodeId); +hsRef VaultGetNode(NetVaultNode * templateNode); + // VaultAddChildNode will download the child node if necessary // the parent exists locally before making the callback. typedef void (*FVaultAddChildNodeCallback)( @@ -272,11 +269,11 @@ void VaultCreateNode ( // non-blocking void * state, void * param ); -RelVaultNode * VaultCreateNodeAndWaitIncRef ( // block until completion. returns node. nil --> failure +hsRef VaultCreateNodeAndWait ( // block until completion. returns node. nil --> failure plVault::NodeTypes nodeType, ENetError * result ); -RelVaultNode * VaultCreateNodeAndWaitIncRef ( // block until completion. returns node. nil --> failure +hsRef VaultCreateNodeAndWait ( // block until completion. returns node. nil --> failure NetVaultNode * templateNode, ENetError * result ); @@ -303,7 +300,7 @@ void VaultLocalFindNodes ( NetVaultNode * templateNode, ARRAY(unsigned) * nodeIds ); -void VaultFetchNodesAndWait ( // Use VaultGetNodeIncRef to access the fetched nodes +void VaultFetchNodesAndWait ( // Use VaultGetNode to access the fetched nodes const unsigned nodeIds[], unsigned count, bool force = false @@ -330,32 +327,32 @@ void VaultInitAge ( * ***/ -unsigned VaultGetPlayerId (); -RelVaultNode * VaultGetPlayerNodeIncRef (); -RelVaultNode * VaultGetPlayerInfoNodeIncRef (); -RelVaultNode * VaultGetAvatarOutfitFolderIncRef (); -RelVaultNode * VaultGetAvatarClosetFolderIncRef (); -bool VaultGetLinkToMyNeighborhood (plAgeLinkStruct * link); -bool VaultGetLinkToMyPersonalAge (plAgeLinkStruct * link); -bool VaultGetLinkToCity (plAgeLinkStruct * link); -RelVaultNode * VaultGetAgesIOwnFolderIncRef (); -RelVaultNode * VaultGetAgesICanVisitFolderIncRef (); -RelVaultNode * VaultGetPlayerInboxFolderIncRef (); -RelVaultNode * VaultGetOwnedAgeLinkIncRef (const plAgeInfoStruct * info); -RelVaultNode * VaultGetOwnedAgeInfoIncRef (const plAgeInfoStruct * info); -bool VaultGetOwnedAgeLink (const plAgeInfoStruct * info, plAgeLinkStruct * link); -bool VaultAddOwnedAgeSpawnPoint (const plUUID& ageInstId, const plSpawnPointInfo & spawnPt); -bool VaultSetOwnedAgePublicAndWait (const plAgeInfoStruct * info, bool publicOrNot); -RelVaultNode * VaultGetVisitAgeLinkIncRef (const plAgeInfoStruct * info); -bool VaultGetVisitAgeLink (const plAgeInfoStruct * info, class plAgeLinkStruct * link); -bool VaultRegisterOwnedAgeAndWait (const plAgeLinkStruct * link); -void VaultRegisterOwnedAge(const plAgeLinkStruct* link); -bool VaultRegisterVisitAgeAndWait (const plAgeLinkStruct * link); -void VaultRegisterVisitAge (const plAgeLinkStruct* link); -bool VaultUnregisterOwnedAgeAndWait (const plAgeInfoStruct * info); -bool VaultUnregisterVisitAgeAndWait (const plAgeInfoStruct * info); -RelVaultNode * VaultFindChronicleEntryIncRef (const wchar_t entryName[], int entryType = -1); -bool VaultHasChronicleEntry (const wchar_t entryName[], int entryType = -1); +unsigned VaultGetPlayerId(); +hsRef VaultGetPlayerNode(); +hsRef VaultGetPlayerInfoNode(); +hsRef VaultGetAvatarOutfitFolder(); +hsRef VaultGetAvatarClosetFolder(); +bool VaultGetLinkToMyNeighborhood(plAgeLinkStruct * link); +bool VaultGetLinkToMyPersonalAge(plAgeLinkStruct * link); +bool VaultGetLinkToCity(plAgeLinkStruct * link); +hsRef VaultGetAgesIOwnFolder(); +hsRef VaultGetAgesICanVisitFolder(); +hsRef VaultGetPlayerInboxFolder(); +hsRef VaultGetOwnedAgeLink(const plAgeInfoStruct * info); +hsRef VaultGetOwnedAgeInfo(const plAgeInfoStruct * info); +bool VaultGetOwnedAgeLink(const plAgeInfoStruct * info, plAgeLinkStruct * link); +bool VaultAddOwnedAgeSpawnPoint(const plUUID& ageInstId, const plSpawnPointInfo & spawnPt); +bool VaultSetOwnedAgePublicAndWait(const plAgeInfoStruct * info, bool publicOrNot); +hsRef VaultGetVisitAgeLink(const plAgeInfoStruct * info); +bool VaultGetVisitAgeLink(const plAgeInfoStruct * info, class plAgeLinkStruct * link); +bool VaultRegisterOwnedAgeAndWait(const plAgeLinkStruct * link); +void VaultRegisterOwnedAge(const plAgeLinkStruct* link); +bool VaultRegisterVisitAgeAndWait(const plAgeLinkStruct * link); +void VaultRegisterVisitAge(const plAgeLinkStruct* link); +bool VaultUnregisterOwnedAgeAndWait(const plAgeInfoStruct * info); +bool VaultUnregisterVisitAgeAndWait(const plAgeInfoStruct * info); +hsRef VaultFindChronicleEntry(const wchar_t entryName[], int entryType = -1); +bool VaultHasChronicleEntry(const wchar_t entryName[], int entryType = -1); // if entry of same name and type already exists, value is updated void VaultAddChronicleEntryAndWait ( const wchar_t entryName[], @@ -390,32 +387,32 @@ void VaultProcessPlayerInbox (); #define DEFAULT_DEVICE_INBOX L"DevInbox" -RelVaultNode * VaultGetAgeNodeIncRef (); -RelVaultNode * VaultGetAgeInfoNodeIncRef (); -RelVaultNode * VaultGetAgeChronicleFolderIncRef (); -RelVaultNode * VaultGetAgeDevicesFolderIncRef (); -RelVaultNode * VaultGetAgeSubAgesFolderIncRef (); -RelVaultNode * VaultGetAgeChildAgesFolderIncRef (); -RelVaultNode * VaultGetAgeAgeOwnersFolderIncRef (); -RelVaultNode * VaultGetAgeCanVisitFolderIncRef (); -RelVaultNode * VaultGetAgePeopleIKnowAboutFolderIncRef (); -RelVaultNode * VaultGetAgePublicAgesFolderIncRef (); -RelVaultNode * VaultAgeGetBookshelfFolderIncRef (); -RelVaultNode * VaultFindAgeSubAgeLinkIncRef (const plAgeInfoStruct * info); -RelVaultNode * VaultFindAgeChildAgeLinkIncRef (const plAgeInfoStruct * info); -RelVaultNode * VaultFindAgeChronicleEntryIncRef (const wchar_t entryName[], int entryType = -1); +hsRef VaultGetAgeNode(); +hsRef VaultGetAgeInfoNode(); +hsRef VaultGetAgeChronicleFolder(); +hsRef VaultGetAgeDevicesFolder(); +hsRef VaultGetAgeSubAgesFolder(); +hsRef VaultGetAgeChildAgesFolder(); +hsRef VaultGetAgeAgeOwnersFolder(); +hsRef VaultGetAgeCanVisitFolder(); +hsRef VaultGetAgePeopleIKnowAboutFolder(); +hsRef VaultGetAgePublicAgesFolder(); +hsRef VaultAgeGetBookshelfFolder(); +hsRef VaultFindAgeSubAgeLink(const plAgeInfoStruct * info); +hsRef VaultFindAgeChildAgeLink(const plAgeInfoStruct * info); +hsRef VaultFindAgeChronicleEntry(const wchar_t entryName[], int entryType = -1); // if entry of same name and type already exists, value is updated void VaultAddAgeChronicleEntry ( const wchar_t entryName[], int entryType, const wchar_t entryValue[] ); -RelVaultNode * VaultAgeAddDeviceAndWaitIncRef (const wchar_t deviceName[]); // blocks until completion +hsRef VaultAgeAddDeviceAndWait(const wchar_t deviceName[]); // blocks until completion void VaultAgeRemoveDevice (const wchar_t deviceName[]); bool VaultAgeHasDevice (const wchar_t deviceName[]); -RelVaultNode * VaultAgeGetDeviceIncRef (const wchar_t deviceName[]); -RelVaultNode * VaultAgeSetDeviceInboxAndWaitIncRef (const wchar_t deviceName[], const wchar_t inboxName[]); // blocks until completion -RelVaultNode * VaultAgeGetDeviceInboxIncRef (const wchar_t deviceName[]); +hsRef VaultAgeGetDevice(const wchar_t deviceName[]); +hsRef VaultAgeSetDeviceInboxAndWait(const wchar_t deviceName[], const wchar_t inboxName[]); // blocks until completion +hsRef VaultAgeGetDeviceInbox(const wchar_t deviceName[]); void VaultClearDeviceInboxMap (); bool VaultAgeGetAgeSDL (class plStateDataRecord * out); @@ -423,7 +420,7 @@ void VaultAgeUpdateAgeSDL (const class plStateDataRecord * rec); unsigned VaultAgeGetAgeTime (); -RelVaultNode * VaultGetSubAgeLinkIncRef (const plAgeInfoStruct * info); +hsRef VaultGetSubAgeLink(const plAgeInfoStruct * info); bool VaultAgeGetSubAgeLink ( const plAgeInfoStruct * info, plAgeLinkStruct * link @@ -435,7 +432,7 @@ bool VaultAgeFindOrCreateSubAgeLinkAndWait ( ); bool VaultAgeFindOrCreateSubAgeLink(const plAgeInfoStruct* info, plAgeLinkStruct* link, const plUUID& arentUuid); bool VaultAgeFindOrCreateChildAgeLinkAndWait ( - const wchar_t parentAgeName[], // nil --> current age, non-nil --> owned age by given name + const wchar_t parentAgeName[], // nil --> current age, non-nil --> owned age by given name const plAgeInfoStruct * info, plAgeLinkStruct * link ); @@ -494,7 +491,7 @@ void VaultCull ( * ***/ -RelVaultNode * VaultGetSystemNodeIncRef (); -RelVaultNode * VaultGetGlobalInboxIncRef (); +hsRef VaultGetSystemNode(); +hsRef VaultGetGlobalInbox(); #endif // def CLIENT diff --git a/Sources/Plasma/PubUtilLib/plVault/plVaultNodeAccess.cpp b/Sources/Plasma/PubUtilLib/plVault/plVaultNodeAccess.cpp index 1dbf2312..f844cace 100644 --- a/Sources/Plasma/PubUtilLib/plVault/plVaultNodeAccess.cpp +++ b/Sources/Plasma/PubUtilLib/plVault/plVaultNodeAccess.cpp @@ -435,14 +435,12 @@ struct MatchesSpawnPointName //============================================================================ #ifdef CLIENT bool VaultAgeLinkNode::CopyTo (plAgeLinkStruct * link) { - if (RelVaultNode * me = VaultGetNodeIncRef(base->GetNodeId())) { - if (RelVaultNode * info = me->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) { + if (hsRef me = VaultGetNode(base->GetNodeId())) { + if (hsRef info = me->GetChildNode(plVault::kNodeType_AgeInfo, 1)) { VaultAgeInfoNode access(info); access.CopyTo(link->GetAgeInfo()); - me->UnRef(); return true; } - me->UnRef(); } link->Clear(); return false;