mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-18 03:09:13 +00:00
Merge pnUtRef with hsRefCnt, and remove the former
This commit is contained in:
@ -65,21 +65,48 @@ void hsRefCnt::UnRef()
|
||||
--fRefCnt;
|
||||
}
|
||||
|
||||
hsSafeRefCnt::~hsSafeRefCnt()
|
||||
hsAtomicRefCnt::~hsAtomicRefCnt()
|
||||
{
|
||||
#ifdef HS_DEBUGGING
|
||||
hsThrowIfFalse(fRefCnt == 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
void hsSafeRefCnt::UnRef()
|
||||
void hsAtomicRefCnt::UnRef(const char* tag)
|
||||
{
|
||||
#ifdef HS_DEBUGGING
|
||||
hsThrowIfFalse(fRefCnt >= 1);
|
||||
#endif
|
||||
|
||||
#ifdef REFCOUNT_DEBUGGING
|
||||
if (tag)
|
||||
DEBUG_MSG("Dec %p %s: %u", this, tag, prev - 1);
|
||||
else
|
||||
DEBUG_MSG("Dec %p: %u", this, prev - 1);
|
||||
#endif
|
||||
|
||||
if (fRefCnt == 1) // don't decrement if we call delete
|
||||
delete this;
|
||||
else
|
||||
--fRefCnt;
|
||||
}
|
||||
|
||||
void hsAtomicRefCnt::Ref(const char* tag)
|
||||
{
|
||||
#ifdef REFCOUNT_DEBUGGING
|
||||
if (tag)
|
||||
DEBUG_MSG("Inc %p %s: %u", this, tag, prev + 1);
|
||||
else
|
||||
DEBUG_MSG("Inc %p: %u", this, prev + 1);
|
||||
#endif
|
||||
|
||||
++fRefCnt;
|
||||
}
|
||||
|
||||
void hsAtomicRefCnt::TransferRef(const char* oldTag, const char* newTag)
|
||||
{
|
||||
#ifdef REFCOUNT_DEBUGGING
|
||||
DEBUG_MSG("Inc %p %s: (xfer)", this, newTag);
|
||||
DEBUG_MSG("Dec %p %s: (xfer)", this, oldTag);
|
||||
#endif
|
||||
}
|
||||
|
@ -69,18 +69,21 @@ public:
|
||||
|
||||
// Thread-safe version. TODO: Evaluate whether this is fast enough to
|
||||
// merge with hsRefCnt above.
|
||||
class hsSafeRefCnt
|
||||
class hsAtomicRefCnt
|
||||
{
|
||||
private:
|
||||
std::atomic<int> fRefCnt;
|
||||
|
||||
public:
|
||||
hsSafeRefCnt() : fRefCnt(1) { }
|
||||
virtual ~hsSafeRefCnt();
|
||||
hsAtomicRefCnt() : fRefCnt(1) { }
|
||||
virtual ~hsAtomicRefCnt();
|
||||
|
||||
inline int RefCnt() const { return fRefCnt; }
|
||||
void UnRef();
|
||||
inline void Ref() { ++fRefCnt; }
|
||||
void UnRef(const char* tag = nullptr);
|
||||
void Ref(const char* tag = nullptr);
|
||||
|
||||
// Useless, but left here for debugging compatibility with AtomicRef
|
||||
void TransferRef(const char* oldTag, const char* newTag);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -1695,7 +1695,7 @@ void cyAvatar::ChangeAvatar(const char* genderName)
|
||||
if (rvnPlr) {
|
||||
VaultPlayerNode plr(rvnPlr);
|
||||
plr.SetAvatarShapeName(wStr);
|
||||
rvnPlr->DecRef();
|
||||
rvnPlr->UnRef();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -1716,7 +1716,7 @@ void cyAvatar::ChangePlayerName(const char* playerName)
|
||||
if (rvnPlr) {
|
||||
VaultPlayerNode plr(rvnPlr);
|
||||
plr.SetPlayerName(wStr);
|
||||
rvnPlr->DecRef();
|
||||
rvnPlr->UnRef();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2474,7 +2474,7 @@ int cyMisc::GetKILevel()
|
||||
if (RelVaultNode * rvn = VaultFindChronicleEntryIncRef(wStr)) {
|
||||
VaultChronicleNode chron(rvn);
|
||||
result = wcstol(chron.GetEntryValue(), nil, 0);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -2893,7 +2893,7 @@ void cyMisc::SendFriendInvite(const wchar_t email[], const wchar_t toName[])
|
||||
}
|
||||
|
||||
NetCommSendFriendInvite(email, toName, inviteUuid);
|
||||
pNode->DecRef();
|
||||
pNode->UnRef();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2082,7 +2082,7 @@ bool plPythonFileMod::MsgReceive(plMessage* msg)
|
||||
Py_DECREF(ptuple);
|
||||
ptuple = PyTuple_New(1);
|
||||
PyTuple_SetItem(ptuple, 0, pyVaultAgeLinkNode::New(rvn));
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -84,7 +84,7 @@ PyObject* pyAgeVault::GetAgeInfo()
|
||||
RelVaultNode * rvn = VaultGetAgeInfoNodeIncRef();
|
||||
if (rvn) {
|
||||
PyObject * result = pyVaultAgeInfoNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -97,7 +97,7 @@ PyObject* pyAgeVault::GetAgeDevicesFolder( void )
|
||||
RelVaultNode * rvn = VaultGetAgeDevicesFolderIncRef();
|
||||
if (rvn) {
|
||||
PyObject * result = pyVaultFolderNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -110,7 +110,7 @@ PyObject* pyAgeVault::GetSubAgesFolder( void )
|
||||
RelVaultNode * rvn = VaultGetAgeSubAgesFolderIncRef();
|
||||
if (rvn) {
|
||||
PyObject * result = pyVaultFolderNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -123,7 +123,7 @@ PyObject* pyAgeVault::GetChronicleFolder( void )
|
||||
RelVaultNode * rvn = VaultGetAgeChronicleFolderIncRef();
|
||||
if (rvn) {
|
||||
PyObject * result = pyVaultFolderNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -136,7 +136,7 @@ PyObject* pyAgeVault::GetBookshelfFolder ( void )
|
||||
RelVaultNode * rvn = VaultAgeGetBookshelfFolderIncRef();
|
||||
if (rvn) {
|
||||
PyObject * result = pyVaultFolderNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -149,7 +149,7 @@ PyObject* pyAgeVault::GetPeopleIKnowAboutFolder( void )
|
||||
RelVaultNode * rvn = VaultGetAgePeopleIKnowAboutFolderIncRef();
|
||||
if (rvn) {
|
||||
PyObject * result = pyVaultFolderNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -163,7 +163,7 @@ PyObject* pyAgeVault::GetPublicAgesFolder(void)
|
||||
RelVaultNode * rvn = VaultGetAgePublicAgesFolderIncRef();
|
||||
if (rvn) {
|
||||
PyObject * result = pyVaultFolderNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -176,7 +176,7 @@ PyObject* pyAgeVault::GetSubAgeLink( const pyAgeInfoStruct & info )
|
||||
RelVaultNode * rvn = VaultFindAgeSubAgeLinkIncRef(info.GetAgeInfo());
|
||||
if (rvn) {
|
||||
PyObject * result = pyVaultAgeLinkNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -190,7 +190,7 @@ plUUID pyAgeVault::GetAgeGuid( void )
|
||||
if (rvn) {
|
||||
VaultAgeInfoNode ageInfo(rvn);
|
||||
plUUID uuid = ageInfo.GetAgeInstanceGuid();
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return uuid;
|
||||
}
|
||||
return kNilUuid;
|
||||
@ -206,7 +206,7 @@ PyObject* pyAgeVault::FindChronicleEntry( const char * entryName )
|
||||
|
||||
if (RelVaultNode * rvn = VaultFindAgeChronicleEntryIncRef(wEntryName)) {
|
||||
PyObject * result = pyVaultChronicleNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -237,7 +237,7 @@ void pyAgeVault::AddDevice( const char * deviceName, PyObject * cbObject, uint32
|
||||
|
||||
if (RelVaultNode * rvn = VaultAgeAddDeviceAndWaitIncRef(wStr)) {
|
||||
cb->SetNode(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
cb->VaultOperationComplete( cbContext, cb->GetNode() ? hsOK : hsFail); // cbHolder deletes itself here.
|
||||
@ -268,7 +268,7 @@ PyObject * pyAgeVault::GetDevice( const char * deviceName )
|
||||
|
||||
if (RelVaultNode * rvn = VaultAgeGetDeviceIncRef(wStr)) {
|
||||
PyObject * result = pyVaultTextNoteNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -288,7 +288,7 @@ void pyAgeVault::SetDeviceInbox( const char * deviceName, const char * inboxName
|
||||
|
||||
if (RelVaultNode * rvn = VaultAgeSetDeviceInboxAndWaitIncRef(wDev, wInb)) {
|
||||
cb->SetNode(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
cb->VaultOperationComplete( cbContext, cb->GetNode() ? hsOK : hsFail ); // cbHolder deletes itself here.
|
||||
@ -301,7 +301,7 @@ PyObject * pyAgeVault::GetDeviceInbox( const char * deviceName )
|
||||
|
||||
if (RelVaultNode * rvn = VaultAgeGetDeviceInboxIncRef(wStr)) {
|
||||
PyObject * result = pyVaultTextNoteNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -333,10 +333,10 @@ PyObject* pyAgeVault::FindNode( pyVaultNode* templateNode ) const
|
||||
{
|
||||
if (RelVaultNode * rvn = VaultGetAgeNodeIncRef()) {
|
||||
RelVaultNode * find = rvn->GetChildNodeIncRef(templateNode->fNode, 1);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
if (find) {
|
||||
PyObject * result = pyVaultNode::New(find);
|
||||
find->DecRef();
|
||||
find->UnRef();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ uint32_t pyDniInfoSource::GetAgeTime( void ) const
|
||||
result = (uint32_t)utime->GetSecs();
|
||||
else
|
||||
result = 0;
|
||||
node->DecRef();
|
||||
node->UnRef();
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -95,7 +95,7 @@ const char * pyDniInfoSource::GetAgeName( void ) const
|
||||
VaultAgeInfoNode ageInfo(node);
|
||||
|
||||
fAgeName = StrDupToAnsi(ageInfo.GetAgeInstanceName());
|
||||
node->DecRef();
|
||||
node->UnRef();
|
||||
|
||||
return fAgeName;
|
||||
}
|
||||
@ -106,7 +106,7 @@ plUUID pyDniInfoSource::GetAgeGuid( void ) const
|
||||
{
|
||||
VaultAgeInfoNode ageInfo(node);
|
||||
plUUID uuid = ageInfo.GetAgeInstanceGuid();
|
||||
node->DecRef();
|
||||
node->UnRef();
|
||||
|
||||
return uuid;
|
||||
}
|
||||
|
@ -129,7 +129,7 @@ void pyGameScore::CreateAgeScore(const plString& name, uint32_t type, int32_t po
|
||||
{
|
||||
uint32_t ownerId = ageInfo->GetNodeId();
|
||||
pfGameScore::Create(ownerId, name, type, points, rcvr.getKey());
|
||||
ageInfo->DecRef();
|
||||
ageInfo->UnRef();
|
||||
} else
|
||||
hsAssert(false, "Age has no vault... Need to rewrite score python script?");
|
||||
}
|
||||
@ -145,7 +145,7 @@ void pyGameScore::CreatePlayerScore(const plString& name, uint32_t type, int32_t
|
||||
{
|
||||
uint32_t ownerId = node->GetNodeId();
|
||||
pfGameScore::Create(ownerId, name, type, points, rcvr.getKey());
|
||||
node->DecRef();
|
||||
node->UnRef();
|
||||
} else
|
||||
hsAssert(false, "No PlayerInfo node... Need to rewrite python script?");
|
||||
}
|
||||
@ -161,7 +161,7 @@ void pyGameScore::FindAgeScores(const plString& name, pyKey& rcvr)
|
||||
{
|
||||
uint32_t ownerId = ageInfo->GetNodeId();
|
||||
pfGameScore::Find(ownerId, name, rcvr.getKey());
|
||||
ageInfo->DecRef();
|
||||
ageInfo->UnRef();
|
||||
} else
|
||||
hsAssert(false, "Age has no vault... Need to rewrite score python script?");
|
||||
}
|
||||
@ -177,7 +177,7 @@ void pyGameScore::FindPlayerScores(const plString& name, pyKey& rcvr)
|
||||
{
|
||||
uint32_t ownerId = node->GetNodeId();
|
||||
pfGameScore::Find(ownerId, name, rcvr.getKey());
|
||||
node->DecRef();
|
||||
node->UnRef();
|
||||
}
|
||||
else
|
||||
hsAssert(false, "No PlayerInfo node.. Need to rewrite python script?");
|
||||
|
@ -84,9 +84,9 @@ static PyObject * GetFolder (unsigned folderType) {
|
||||
if (RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef()) {
|
||||
if (RelVaultNode * rvnFldr = rvnPlr->GetChildFolderNodeIncRef(folderType, 1)) {
|
||||
result = pyVaultFolderNode::New(rvnFldr);
|
||||
rvnFldr->DecRef();
|
||||
rvnFldr->UnRef();
|
||||
}
|
||||
rvnPlr->DecRef();
|
||||
rvnPlr->UnRef();
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -98,9 +98,9 @@ static PyObject * GetPlayerInfoList (unsigned folderType) {
|
||||
if (RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef()) {
|
||||
if (RelVaultNode * rvnFldr = rvnPlr->GetChildPlayerInfoListNodeIncRef(folderType, 1)) {
|
||||
result = pyVaultPlayerInfoListNode::New(rvnFldr);
|
||||
rvnFldr->DecRef();
|
||||
rvnFldr->UnRef();
|
||||
}
|
||||
rvnPlr->DecRef();
|
||||
rvnPlr->UnRef();
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -112,9 +112,9 @@ static PyObject * GetAgeInfoList (unsigned folderType) {
|
||||
if (RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef()) {
|
||||
if (RelVaultNode * rvnFldr = rvnPlr->GetChildAgeInfoListNodeIncRef(folderType, 1)) {
|
||||
result = pyVaultAgeInfoListNode::New(rvnFldr);
|
||||
rvnFldr->DecRef();
|
||||
rvnFldr->UnRef();
|
||||
}
|
||||
rvnPlr->DecRef();
|
||||
rvnPlr->UnRef();
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -127,9 +127,9 @@ PyObject* pyVault::GetPlayerInfo()
|
||||
if (RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef()) {
|
||||
if (RelVaultNode * rvnPlrInfo = rvnPlr->GetChildNodeIncRef(plVault::kNodeType_PlayerInfo, 1)) {
|
||||
result = pyVaultPlayerInfoNode::New(rvnPlrInfo);
|
||||
rvnPlrInfo->DecRef();
|
||||
rvnPlrInfo->UnRef();
|
||||
}
|
||||
rvnPlr->DecRef();
|
||||
rvnPlr->UnRef();
|
||||
}
|
||||
|
||||
// just return an empty node
|
||||
@ -231,13 +231,13 @@ PyObject* pyVault::GetKIUsage(void)
|
||||
++notes;
|
||||
else if (rvn->GetNodeType() == plVault::kNodeType_MarkerGame)
|
||||
++markerGames;
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
rvnAgeJrnlz->DecRef();
|
||||
rvnAgeJrnlz->UnRef();
|
||||
break;
|
||||
}
|
||||
rvnPlr->DecRef();
|
||||
rvnPlr->UnRef();
|
||||
break;
|
||||
}
|
||||
|
||||
@ -305,7 +305,7 @@ PyObject* pyVault::GetLinkToMyNeighborhood() const
|
||||
|
||||
if (RelVaultNode * rvn = VaultGetOwnedAgeLinkIncRef(&info)) {
|
||||
PyObject * result = pyVaultAgeLinkNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -319,7 +319,7 @@ PyObject* pyVault::GetLinkToCity() const
|
||||
|
||||
if (RelVaultNode * rvn = VaultGetOwnedAgeLinkIncRef(&info)) {
|
||||
PyObject * result = pyVaultAgeLinkNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -332,7 +332,7 @@ PyObject* pyVault::GetOwnedAgeLink( const pyAgeInfoStruct & info )
|
||||
{
|
||||
if (RelVaultNode * rvnLink = VaultGetOwnedAgeLinkIncRef(info.GetAgeInfo())) {
|
||||
PyObject * result = pyVaultAgeLinkNode::New(rvnLink);
|
||||
rvnLink->DecRef();
|
||||
rvnLink->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -345,7 +345,7 @@ PyObject* pyVault::GetVisitAgeLink( const pyAgeInfoStruct & info)
|
||||
{
|
||||
if (RelVaultNode * rvnLink = VaultGetVisitAgeLinkIncRef(info.GetAgeInfo())) {
|
||||
PyObject * result = pyVaultAgeLinkNode::New(rvnLink);
|
||||
rvnLink->DecRef();
|
||||
rvnLink->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -363,7 +363,7 @@ PyObject* pyVault::FindChronicleEntry( const char * entryName )
|
||||
|
||||
if (RelVaultNode * rvn = VaultFindChronicleEntryIncRef(wEntryName)) {
|
||||
PyObject * result = pyVaultChronicleNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -442,7 +442,7 @@ PyObject* pyVault::GetPsnlAgeSDL() const
|
||||
{
|
||||
PyObject * result = nil;
|
||||
NetVaultNode * templateNode = new NetVaultNode;
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
|
||||
if (RelVaultNode * rvnFldr = VaultGetAgesIOwnFolderIncRef()) {
|
||||
|
||||
@ -465,14 +465,14 @@ PyObject* pyVault::GetPsnlAgeSDL() const
|
||||
result = pySDLStateDataRecord::New(rec);
|
||||
else
|
||||
delete rec;
|
||||
rvnSdl->DecRef();
|
||||
rvnSdl->UnRef();
|
||||
}
|
||||
rvnInfo->DecRef();
|
||||
rvnInfo->UnRef();
|
||||
}
|
||||
rvnFldr->DecRef();
|
||||
rvnFldr->UnRef();
|
||||
}
|
||||
|
||||
templateNode->DecRef();
|
||||
templateNode->UnRef();
|
||||
|
||||
if (!result)
|
||||
PYTHON_RETURN_NONE;
|
||||
@ -487,7 +487,7 @@ void pyVault::UpdatePsnlAgeSDL( pySDLStateDataRecord & pyrec )
|
||||
return;
|
||||
|
||||
NetVaultNode * templateNode = new NetVaultNode;
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
|
||||
if (RelVaultNode * rvnFldr = VaultGetAgesIOwnFolderIncRef()) {
|
||||
|
||||
@ -506,14 +506,14 @@ void pyVault::UpdatePsnlAgeSDL( pySDLStateDataRecord & pyrec )
|
||||
if (RelVaultNode * rvnSdl = rvnInfo->GetChildNodeIncRef(templateNode, 1)) {
|
||||
VaultSDLNode sdl(rvnSdl);
|
||||
sdl.SetStateDataRecord(rec, plSDL::kDirtyOnly | plSDL::kTimeStampOnRead);
|
||||
rvnSdl->DecRef();
|
||||
rvnSdl->UnRef();
|
||||
}
|
||||
rvnInfo->DecRef();
|
||||
rvnInfo->UnRef();
|
||||
}
|
||||
rvnFldr->DecRef();
|
||||
rvnFldr->UnRef();
|
||||
}
|
||||
|
||||
templateNode->DecRef();
|
||||
templateNode->UnRef();
|
||||
}
|
||||
|
||||
bool pyVault::InMyPersonalAge() const
|
||||
@ -600,13 +600,13 @@ void _InvitePlayerToAge(ENetError result, void* state, void* param, RelVaultNode
|
||||
void pyVault::InvitePlayerToAge( const pyAgeLinkStruct & link, uint32_t playerID )
|
||||
{
|
||||
NetVaultNode * templateNode = new NetVaultNode;
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
templateNode->SetNodeType(plVault::kNodeType_TextNote);
|
||||
VaultTextNoteNode visitAcc(templateNode);
|
||||
visitAcc.SetNoteType(plVault::kNoteType_Visit);
|
||||
visitAcc.SetVisitInfo(*link.GetAgeLink()->GetAgeInfo());
|
||||
VaultCreateNode(templateNode, (FVaultCreateNodeCallback)_InvitePlayerToAge, nil, (void*)playerID);
|
||||
templateNode->DecRef();
|
||||
templateNode->UnRef();
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -626,20 +626,20 @@ void pyVault::UnInvitePlayerToAge( const char * str, uint32_t playerID )
|
||||
if (RelVaultNode * rvnInfo = rvnLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) {
|
||||
VaultAgeInfoNode ageInfo(rvnInfo);
|
||||
ageInfo.CopyTo(&info);
|
||||
rvnInfo->DecRef();
|
||||
rvnInfo->UnRef();
|
||||
}
|
||||
|
||||
rvnLink->DecRef();
|
||||
rvnLink->UnRef();
|
||||
}
|
||||
|
||||
NetVaultNode * templateNode = new NetVaultNode;
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
templateNode->SetNodeType(plVault::kNodeType_TextNote);
|
||||
VaultTextNoteNode visitAcc(templateNode);
|
||||
visitAcc.SetNoteType(plVault::kNoteType_UnVisit);
|
||||
visitAcc.SetVisitInfo(info);
|
||||
VaultCreateNode(templateNode, (FVaultCreateNodeCallback)_UninvitePlayerToAge, nil, (void*)playerID);
|
||||
templateNode->DecRef();
|
||||
templateNode->UnRef();
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -699,7 +699,7 @@ PyObject* pyVault::GetGlobalInbox()
|
||||
PyObject * result = nil;
|
||||
if (RelVaultNode * rvnGlobalInbox = VaultGetGlobalInboxIncRef()) {
|
||||
result = pyVaultFolderNode::New(rvnGlobalInbox);
|
||||
rvnGlobalInbox->DecRef();
|
||||
rvnGlobalInbox->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -714,7 +714,7 @@ 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->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -728,7 +728,7 @@ PyObject* pyVault::FindNode( pyVaultNode* templateNode ) const
|
||||
// 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->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -112,10 +112,10 @@ PyObject *pyVaultAgeInfoListNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultAgeInfoListNode *newObj = (ptVaultAgeInfoListNode*)ptVaultAgeInfoListNode_type.tp_new(&ptVaultAgeInfoListNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -80,7 +80,7 @@ static PyObject * GetChildFolder (RelVaultNode * node, unsigned type) {
|
||||
PyObject * result = nil;
|
||||
if (RelVaultNode * rvn = node->GetChildFolderNodeIncRef(type, 1)) {
|
||||
result = pyVaultFolderNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -91,7 +91,7 @@ static PyObject * GetChildPlayerInfoList (RelVaultNode * node, unsigned type) {
|
||||
PyObject * result = nil;
|
||||
if (RelVaultNode * rvn = node->GetChildPlayerInfoListNodeIncRef(type, 1)) {
|
||||
result = pyVaultPlayerInfoListNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -101,7 +101,7 @@ static PyObject * GetChildAgeInfoList (RelVaultNode * node, unsigned type) {
|
||||
PyObject * result = nil;
|
||||
if (RelVaultNode * rvn = node->GetChildAgeInfoListNodeIncRef(type, 1)) {
|
||||
result = pyVaultAgeInfoListNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -175,7 +175,7 @@ PyObject * pyVaultAgeInfoNode::GetParentAgeLink () const
|
||||
|
||||
if (RelVaultNode * rvn = fNode->GetParentAgeLinkIncRef()) {
|
||||
PyObject * result = pyVaultAgeLinkNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -288,10 +288,10 @@ PyObject *pyVaultAgeInfoNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultAgeInfoNode *newObj = (ptVaultAgeInfoNode*)ptVaultAgeInfoNode_type.tp_new(&ptVaultAgeInfoNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ PyObject* pyVaultAgeLinkNode::GetAgeInfo() const
|
||||
PyObject * result = nil;
|
||||
if (RelVaultNode * rvn = fNode->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) {
|
||||
result = pyVaultAgeInfoNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
if (result)
|
||||
|
@ -201,10 +201,10 @@ PyObject *pyVaultAgeLinkNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultAgeLinkNode *newObj = (ptVaultAgeLinkNode*)ptVaultAgeLinkNode_type.tp_new(&ptVaultAgeLinkNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -191,10 +191,10 @@ PyObject *pyVaultChronicleNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultChronicleNode *newObj = (ptVaultChronicleNode*)ptVaultChronicleNode_type.tp_new(&ptVaultChronicleNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -192,10 +192,10 @@ PyObject *pyVaultFolderNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultFolderNode *newObj = (ptVaultFolderNode*)ptVaultFolderNode_type.tp_new(&ptVaultFolderNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -220,10 +220,10 @@ PyObject *pyVaultImageNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultImageNode *newObj = (ptVaultImageNode*)ptVaultImageNode_type.tp_new(&ptVaultImageNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -115,10 +115,10 @@ PyObject *pyVaultMarkerGameNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultMarkerGameNode *newObj = (ptVaultMarkerGameNode*)ptVaultMarkerGameNode_type.tp_new(&ptVaultMarkerGameNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -159,10 +159,10 @@ void pyVaultNode::pyVaultNodeOperationCallback::VaultOperationComplete( uint32_t
|
||||
|
||||
void pyVaultNode::pyVaultNodeOperationCallback::SetNode (RelVaultNode * rvn) {
|
||||
if (rvn)
|
||||
rvn->IncRef();
|
||||
rvn->Ref();
|
||||
SWAP(rvn, fNode);
|
||||
if (rvn)
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
RelVaultNode * pyVaultNode::pyVaultNodeOperationCallback::GetNode () {
|
||||
@ -182,13 +182,13 @@ pyVaultNode::pyVaultNode( RelVaultNode* nfsNode )
|
||||
, fCreateAgeName(nil)
|
||||
{
|
||||
if (fNode)
|
||||
fNode->IncRef("pyVaultNode");
|
||||
fNode->Ref("pyVaultNode");
|
||||
}
|
||||
|
||||
pyVaultNode::~pyVaultNode()
|
||||
{
|
||||
if (fNode)
|
||||
fNode->DecRef("pyVaultNode");
|
||||
fNode->UnRef("pyVaultNode");
|
||||
free(fCreateAgeName);
|
||||
}
|
||||
|
||||
@ -271,16 +271,16 @@ PyObject* pyVaultNode::GetCreatorNode( void )
|
||||
if (fNode)
|
||||
{
|
||||
RelVaultNode * templateNode = new RelVaultNode;
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
templateNode->SetNodeType(plVault::kNodeType_PlayerInfo);
|
||||
VaultPlayerInfoNode plrInfo(templateNode);
|
||||
plrInfo.SetPlayerId(fNode->GetCreatorId());
|
||||
|
||||
if (RelVaultNode * rvn = VaultGetNodeIncRef(templateNode)) {
|
||||
result = pyVaultPlayerInfoNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
templateNode->DecRef();
|
||||
templateNode->UnRef();
|
||||
}
|
||||
|
||||
if (result)
|
||||
@ -423,8 +423,8 @@ PyObject* pyVaultNode::AddNode(pyVaultNode* pynode, PyObject* cbObject, uint32_t
|
||||
);
|
||||
|
||||
if (newNode) {
|
||||
newNode->IncRef();
|
||||
pynode->fNode->DecRef();
|
||||
newNode->Ref();
|
||||
pynode->fNode->UnRef();
|
||||
pynode->fNode = newNode;
|
||||
}
|
||||
else {
|
||||
@ -471,7 +471,7 @@ void pyVaultNode::LinkToNode(int nodeID, PyObject* cbObject, uint32_t cbContext)
|
||||
if (RelVaultNode * rvn = VaultGetNodeIncRef(nodeID)) {
|
||||
cb->SetNode(rvn);
|
||||
cb->fPyNodeRef = pyVaultNodeRef::New(fNode, rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
VaultAddChildNode(fNode->GetNodeId(),
|
||||
@ -536,7 +536,7 @@ void pyVaultNode::Save(PyObject* cbObject, uint32_t cbContext)
|
||||
if (!fNode->GetNodeId() && fNode->GetNodeType()) {
|
||||
ENetError result;
|
||||
if (RelVaultNode * node = VaultCreateNodeAndWaitIncRef(fNode, &result)) {
|
||||
fNode->DecRef();
|
||||
fNode->UnRef();
|
||||
fNode = node;
|
||||
}
|
||||
}
|
||||
@ -560,7 +560,7 @@ void pyVaultNode::ForceSave()
|
||||
if (!fNode->GetNodeId() && fNode->GetNodeType()) {
|
||||
ENetError result;
|
||||
if (RelVaultNode * node = VaultCreateNodeAndWaitIncRef(fNode, &result)) {
|
||||
fNode->DecRef();
|
||||
fNode->UnRef();
|
||||
fNode = node;
|
||||
}
|
||||
}
|
||||
@ -579,7 +579,7 @@ void pyVaultNode::SendTo(uint32_t destClientNodeID, PyObject* cbObject, uint32_t
|
||||
if (!fNode->GetNodeId() && fNode->GetNodeType()) {
|
||||
ENetError result;
|
||||
if (RelVaultNode * node = VaultCreateNodeAndWaitIncRef(fNode, &result)) {
|
||||
fNode->DecRef();
|
||||
fNode->UnRef();
|
||||
fNode = node;
|
||||
}
|
||||
}
|
||||
@ -618,7 +618,7 @@ PyObject* pyVaultNode::GetChildNodeRefList()
|
||||
PyObject* elementObj = pyVaultNodeRef::New(fNode, nodes[i]);
|
||||
PyList_Append(pyEL, elementObj);
|
||||
Py_DECREF(elementObj);
|
||||
nodes[i]->DecRef();
|
||||
nodes[i]->UnRef();
|
||||
}
|
||||
}
|
||||
|
||||
@ -657,13 +657,13 @@ PyObject * pyVaultNode::GetNode2( uint32_t nodeID ) const
|
||||
if ( fNode )
|
||||
{
|
||||
RelVaultNode * templateNode = new RelVaultNode;
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
templateNode->SetNodeId(nodeID);
|
||||
if (RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode, 1)) {
|
||||
result = pyVaultNodeRef::New(fNode, rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
templateNode->DecRef();
|
||||
templateNode->UnRef();
|
||||
}
|
||||
|
||||
if (result)
|
||||
@ -679,7 +679,7 @@ PyObject* pyVaultNode::FindNode( pyVaultNode * templateNode )
|
||||
{
|
||||
if (RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode->fNode, 1)) {
|
||||
result = pyVaultNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
}
|
||||
|
||||
@ -695,14 +695,14 @@ PyObject * pyVaultNode::GetChildNode (unsigned nodeId) {
|
||||
PYTHON_RETURN_NONE;
|
||||
|
||||
RelVaultNode * templateNode = new RelVaultNode;
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
templateNode->SetNodeId(nodeId);
|
||||
RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode, 1);
|
||||
templateNode->DecRef();
|
||||
templateNode->UnRef();
|
||||
|
||||
if (rvn) {
|
||||
PyObject * result = pyVaultNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -542,10 +542,10 @@ PyObject *pyVaultNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultNode *newObj = (ptVaultNode*)ptVaultNode_type.tp_new(&ptVaultNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -65,8 +65,8 @@ pyVaultNodeRef::pyVaultNodeRef(RelVaultNode * parent, RelVaultNode * child)
|
||||
: fParent(parent)
|
||||
, fChild(child)
|
||||
{
|
||||
fParent->IncRef();
|
||||
fChild->IncRef();
|
||||
fParent->Ref();
|
||||
fChild->Ref();
|
||||
}
|
||||
|
||||
pyVaultNodeRef::pyVaultNodeRef(int)
|
||||
@ -78,9 +78,9 @@ pyVaultNodeRef::pyVaultNodeRef(int)
|
||||
pyVaultNodeRef::~pyVaultNodeRef()
|
||||
{
|
||||
if (fParent)
|
||||
fParent->DecRef();
|
||||
fParent->UnRef();
|
||||
if (fChild)
|
||||
fChild->DecRef();
|
||||
fChild->UnRef();
|
||||
}
|
||||
|
||||
|
||||
@ -115,7 +115,7 @@ unsigned pyVaultNodeRef::GetSaverID () {
|
||||
unsigned saverId = 0;
|
||||
if (RelVaultNode * child = VaultGetNodeIncRef(fChild->GetNodeId())) {
|
||||
saverId = child->GetRefOwnerId(fParent->GetNodeId());
|
||||
child->DecRef();
|
||||
child->UnRef();
|
||||
}
|
||||
return saverId;
|
||||
}
|
||||
@ -129,7 +129,7 @@ PyObject * pyVaultNodeRef::GetSaver () {
|
||||
if (unsigned saverId = child->GetRefOwnerId(fParent->GetNodeId())) {
|
||||
// Find the player info node representing the saver
|
||||
NetVaultNode * templateNode = new NetVaultNode;
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
templateNode->SetNodeType(plVault::kNodeType_PlayerInfo);
|
||||
VaultPlayerInfoNode access(templateNode);
|
||||
access.SetPlayerId(saverId);
|
||||
@ -144,15 +144,15 @@ PyObject * pyVaultNodeRef::GetSaver () {
|
||||
}
|
||||
}
|
||||
|
||||
templateNode->DecRef();
|
||||
templateNode->UnRef();
|
||||
}
|
||||
child->DecRef();
|
||||
child->UnRef();
|
||||
}
|
||||
if (!saver)
|
||||
PYTHON_RETURN_NONE;
|
||||
|
||||
PyObject * result = pyVaultPlayerInfoNode::New(saver);
|
||||
saver->DecRef();
|
||||
saver->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -126,15 +126,15 @@ PyObject *pyVaultNodeRef::New(RelVaultNode * parent, RelVaultNode * child)
|
||||
{
|
||||
ptVaultNodeRef *newObj = (ptVaultNodeRef*)ptVaultNodeRef_type.tp_new(&ptVaultNodeRef_type, NULL, NULL);
|
||||
if (newObj->fThis->fParent)
|
||||
newObj->fThis->fParent->DecRef();
|
||||
newObj->fThis->fParent->UnRef();
|
||||
if (newObj->fThis->fChild)
|
||||
newObj->fThis->fChild->DecRef();
|
||||
newObj->fThis->fChild->UnRef();
|
||||
newObj->fThis->fParent = parent;
|
||||
newObj->fThis->fChild = child;
|
||||
if (newObj->fThis->fParent)
|
||||
newObj->fThis->fParent->IncRef();
|
||||
newObj->fThis->fParent->Ref();
|
||||
if (newObj->fThis->fChild)
|
||||
newObj->fThis->fChild->IncRef();
|
||||
newObj->fThis->fChild->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -80,16 +80,16 @@ bool pyVaultPlayerInfoListNode::HasPlayer( uint32_t playerID )
|
||||
return false;
|
||||
|
||||
NetVaultNode * templateNode = new NetVaultNode;
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
templateNode->SetNodeType(plVault::kNodeType_PlayerInfo);
|
||||
VaultPlayerInfoNode access(templateNode);
|
||||
access.SetPlayerId(playerID);
|
||||
|
||||
RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode, 1);
|
||||
if (rvn)
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
|
||||
templateNode->DecRef();
|
||||
templateNode->UnRef();
|
||||
return (rvn != nil);
|
||||
}
|
||||
|
||||
@ -100,7 +100,7 @@ static void IAddPlayer_NodesFound(ENetError result, void* param, unsigned nodeId
|
||||
NetVaultNode* parent = static_cast<NetVaultNode*>(param);
|
||||
if (nodeIdCount)
|
||||
VaultAddChildNode(parent->GetNodeId(), nodeIds[0], VaultGetPlayerId(), nullptr, nullptr);
|
||||
parent->DecRef();
|
||||
parent->UnRef();
|
||||
}
|
||||
|
||||
void pyVaultPlayerInfoListNode::AddPlayer( uint32_t playerID )
|
||||
@ -109,7 +109,7 @@ void pyVaultPlayerInfoListNode::AddPlayer( uint32_t playerID )
|
||||
return;
|
||||
|
||||
NetVaultNode* templateNode = new NetVaultNode();
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
templateNode->SetNodeType(plVault::kNodeType_PlayerInfo);
|
||||
VaultPlayerInfoNode access(templateNode);
|
||||
access.SetPlayerId(playerID);
|
||||
@ -121,7 +121,7 @@ void pyVaultPlayerInfoListNode::AddPlayer( uint32_t playerID )
|
||||
if (nodeIds.Count())
|
||||
VaultAddChildNode(fNode->GetNodeId(), nodeIds[0], VaultGetPlayerId(), nullptr, nullptr);
|
||||
else {
|
||||
fNode->IncRef();
|
||||
fNode->Ref();
|
||||
VaultFindNodes(templateNode, IAddPlayer_NodesFound, fNode);
|
||||
}
|
||||
}
|
||||
@ -132,17 +132,17 @@ void pyVaultPlayerInfoListNode::RemovePlayer( uint32_t playerID )
|
||||
return;
|
||||
|
||||
NetVaultNode * templateNode = new NetVaultNode;
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
templateNode->SetNodeType(plVault::kNodeType_PlayerInfo);
|
||||
VaultPlayerInfoNode access(templateNode);
|
||||
access.SetPlayerId(playerID);
|
||||
|
||||
if (RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode, 1)) {
|
||||
VaultRemoveChildNode(fNode->GetNodeId(), rvn->GetNodeId(), nil, nil);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
templateNode->DecRef();
|
||||
templateNode->UnRef();
|
||||
}
|
||||
|
||||
PyObject * pyVaultPlayerInfoListNode::GetPlayer( uint32_t playerID )
|
||||
@ -151,7 +151,7 @@ PyObject * pyVaultPlayerInfoListNode::GetPlayer( uint32_t playerID )
|
||||
PYTHON_RETURN_NONE;
|
||||
|
||||
NetVaultNode * templateNode = new NetVaultNode;
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
templateNode->SetNodeType(plVault::kNodeType_PlayerInfo);
|
||||
VaultPlayerInfoNode access(templateNode);
|
||||
access.SetPlayerId(playerID);
|
||||
@ -159,10 +159,10 @@ PyObject * pyVaultPlayerInfoListNode::GetPlayer( uint32_t playerID )
|
||||
PyObject * result = nil;
|
||||
if (RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode, 1)) {
|
||||
result = pyVaultPlayerInfoNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
templateNode->DecRef();
|
||||
templateNode->UnRef();
|
||||
|
||||
if (!result)
|
||||
PYTHON_RETURN_NONE;
|
||||
|
@ -180,10 +180,10 @@ PyObject *pyVaultPlayerInfoListNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultPlayerInfoListNode *newObj = (ptVaultPlayerInfoListNode*)ptVaultPlayerInfoListNode_type.tp_new(&ptVaultPlayerInfoListNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -172,10 +172,10 @@ PyObject *pyVaultPlayerInfoNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultPlayerInfoNode *newObj = (ptVaultPlayerInfoNode*)ptVaultPlayerInfoNode_type.tp_new(&ptVaultPlayerInfoNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -68,9 +68,9 @@ static PyObject * GetPlayerVaultFolder (unsigned folderType) {
|
||||
if (RelVaultNode * rvnPlr = VaultGetPlayerNodeIncRef()) {
|
||||
if (RelVaultNode * rvnFldr = rvnPlr->GetChildFolderNodeIncRef(folderType, 1)) {
|
||||
result = pyVaultFolderNode::New(rvnFldr);
|
||||
rvnFldr->DecRef();
|
||||
rvnFldr->UnRef();
|
||||
}
|
||||
rvnPlr->DecRef();
|
||||
rvnPlr->UnRef();
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -174,7 +174,7 @@ PyObject *pyVaultPlayerNode::GetPlayerInfo()
|
||||
{
|
||||
if (RelVaultNode * rvn = VaultGetPlayerInfoNodeIncRef()) {
|
||||
PyObject * result = pyVaultPlayerInfoNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -223,7 +223,7 @@ PyObject *pyVaultPlayerNode::GetVisitAgeLink(const pyAgeInfoStruct *info)
|
||||
{
|
||||
if (RelVaultNode * rvn = VaultGetVisitAgeLinkIncRef(info->GetAgeInfo())) {
|
||||
PyObject * result = pyVaultAgeLinkNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -244,7 +244,7 @@ PyObject *pyVaultPlayerNode::FindChronicleEntry(const char *entryName)
|
||||
StrToUnicode(wStr, entryName, arrsize(wStr));
|
||||
if (RelVaultNode * rvn = VaultFindChronicleEntryIncRef(wStr)) {
|
||||
PyObject * result = pyVaultChronicleNode::New(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -322,10 +322,10 @@ PyObject *pyVaultPlayerNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultPlayerNode *newObj = (ptVaultPlayerNode*)ptVaultPlayerNode_type.tp_new(&ptVaultPlayerNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -130,10 +130,10 @@ PyObject *pyVaultSDLNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultSDLNode *newObj = (ptVaultSDLNode*)ptVaultSDLNode_type.tp_new(&ptVaultSDLNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -71,10 +71,10 @@ PyObject *pyVaultSystemNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultSystemNode *newObj = (ptVaultSystemNode*)ptVaultSystemNode_type.tp_new(&ptVaultSystemNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -230,7 +230,7 @@ void pyVaultTextNoteNode::SetDeviceInbox( const char * devName, PyObject * cbObj
|
||||
|
||||
if (RelVaultNode * rvn = VaultAgeSetDeviceInboxAndWaitIncRef(wDev, DEFAULT_DEVICE_INBOX)) {
|
||||
cb->SetNode(rvn);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
cb->VaultOperationComplete( cbContext, cb->GetNode() ? hsOK : hsFail ); // cbHolder deletes itself here.
|
||||
|
@ -319,10 +319,10 @@ PyObject *pyVaultTextNoteNode::New(RelVaultNode* nfsNode)
|
||||
{
|
||||
ptVaultTextNoteNode *newObj = (ptVaultTextNoteNode*)ptVaultTextNoteNode_type.tp_new(&ptVaultTextNoteNode_type, NULL, NULL);
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->DecRef();
|
||||
newObj->fThis->fNode->UnRef();
|
||||
newObj->fThis->fNode = nfsNode;
|
||||
if (newObj->fThis->fNode)
|
||||
newObj->fThis->fNode->IncRef();
|
||||
newObj->fThis->fNode->Ref();
|
||||
return (PyObject*)newObj;
|
||||
}
|
||||
|
||||
|
@ -48,6 +48,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "Pch.h"
|
||||
#include "hsThread.h"
|
||||
#include <list>
|
||||
#include "hsRefCnt.h"
|
||||
#pragma hdrstop
|
||||
|
||||
|
||||
@ -72,7 +73,7 @@ private:
|
||||
hsMutex m_critsect;
|
||||
};
|
||||
|
||||
struct NetMsgChannel : AtomicRef {
|
||||
struct NetMsgChannel : hsAtomicRefCnt {
|
||||
uint32_t m_protocol;
|
||||
bool m_server;
|
||||
|
||||
@ -109,7 +110,7 @@ ChannelCrit::~ChannelCrit () {
|
||||
while (s_channels->size()) {
|
||||
NetMsgChannel* const channel = s_channels->front();
|
||||
s_channels->remove(channel);
|
||||
channel->DecRef("ChannelLink");
|
||||
channel->UnRef("ChannelLink");
|
||||
}
|
||||
|
||||
delete s_channels;
|
||||
@ -275,7 +276,7 @@ static NetMsgChannel* FindOrCreateChannel_CS (uint32_t protocol, bool server) {
|
||||
channel->m_largestRecv = 0;
|
||||
|
||||
s_channels->push_back(channel);
|
||||
channel->IncRef("ChannelLink");
|
||||
channel->Ref("ChannelLink");
|
||||
}
|
||||
|
||||
return channel;
|
||||
@ -298,7 +299,7 @@ NetMsgChannel * NetMsgChannelLock (
|
||||
s_channelCrit.Enter();
|
||||
if (nil != (channel = FindChannel_CS(protocol, server))) {
|
||||
*largestRecv = channel->m_largestRecv;
|
||||
channel->IncRef("ChannelLock");
|
||||
channel->Ref("ChannelLock");
|
||||
}
|
||||
else {
|
||||
*largestRecv = 0;
|
||||
@ -313,7 +314,7 @@ void NetMsgChannelUnlock (
|
||||
) {
|
||||
s_channelCrit.Enter();
|
||||
{
|
||||
channel->DecRef("ChannelLock");
|
||||
channel->UnRef("ChannelLock");
|
||||
}
|
||||
s_channelCrit.Leave();
|
||||
}
|
||||
@ -392,7 +393,7 @@ void NetMsgProtocolRegister (
|
||||
// make sure no connections have been established on this protocol, otherwise
|
||||
// we'll be modifying a live data structure; NetCli's don't lock their protocol
|
||||
// to operate on it once they have linked to it!
|
||||
ASSERT(channel->GetRefCount() == 1);
|
||||
ASSERT(channel->RefCnt() == 1);
|
||||
|
||||
channel->m_dh_g = dh_g;
|
||||
channel->m_dh_xa = dh_xa;
|
||||
@ -411,7 +412,7 @@ void NetMsgProtocolDestroy (uint32_t protocol, bool server) {
|
||||
s_channelCrit.EnterSafe();
|
||||
if (NetMsgChannel* channel = FindChannel_CS(protocol, server)) {
|
||||
s_channels->remove(channel);
|
||||
channel->DecRef("ChannelLink");
|
||||
channel->UnRef("ChannelLink");
|
||||
}
|
||||
s_channelCrit.LeaveSafe();
|
||||
}
|
||||
|
@ -51,6 +51,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETPROTOCOL_PRIVATE_PNNPCOMMON_H
|
||||
|
||||
#include "pnUUID/pnUUID.h"
|
||||
#include "hsRefCnt.h"
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
@ -156,7 +157,7 @@ struct NetGameRank {
|
||||
// NetVaultNode
|
||||
//============================================================================
|
||||
// Threaded apps: App is responsible for locking node->critsect before accessing *any* field in this struct
|
||||
struct NetVaultNode : AtomicRef {
|
||||
struct NetVaultNode : hsAtomicRefCnt {
|
||||
enum RwOptions {
|
||||
kRwDirtyOnly = 1<<0, // READ : No meaning
|
||||
// WRITE: Only write fields marked dirty
|
||||
|
@ -14,7 +14,6 @@ set(pnUtils_HEADERS
|
||||
pnUtMisc.h
|
||||
pnUtPragma.h
|
||||
pnUtPriQ.h
|
||||
pnUtRef.h
|
||||
pnUtSort.h
|
||||
pnUtStr.h
|
||||
pnUtTime.h
|
||||
|
@ -58,7 +58,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "pnUtPriQ.h"
|
||||
#include "pnUtTime.h"
|
||||
#include "pnUtStr.h"
|
||||
#include "pnUtRef.h"
|
||||
#include "pnUtCmd.h"
|
||||
#include "pnUtMisc.h"
|
||||
#include "pnUtCrypt.h"
|
||||
|
@ -1,180 +0,0 @@
|
||||
/*==LICENSE==*
|
||||
|
||||
CyanWorlds.com Engine - MMOG client, server and tools
|
||||
Copyright (C) 2011 Cyan Worlds, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Additional permissions under GNU GPL version 3 section 7
|
||||
|
||||
If you modify this Program, or any covered work, by linking or
|
||||
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
|
||||
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
|
||||
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
|
||||
(or a modified version of those libraries),
|
||||
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
|
||||
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
|
||||
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
|
||||
licensors of this Program grant you additional
|
||||
permission to convey the resulting work. Corresponding Source for a
|
||||
non-source form of such a combination shall include the source code for
|
||||
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
|
||||
work.
|
||||
|
||||
You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
or by snail mail at:
|
||||
Cyan Worlds, Inc.
|
||||
14617 N Newport Hwy
|
||||
Mead, WA 99021
|
||||
|
||||
*==LICENSE==*/
|
||||
/*****************************************************************************
|
||||
*
|
||||
* $/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtRef.h
|
||||
*
|
||||
***/
|
||||
|
||||
#ifndef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNUTILS_PRIVATE_PNUTREF_H
|
||||
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNUTILS_PRIVATE_PNUTREF_H
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* AtomicRef
|
||||
* Thread safe reference count
|
||||
*
|
||||
***/
|
||||
|
||||
class AtomicRef {
|
||||
#ifdef HS_DEBUGGING
|
||||
bool zeroed;
|
||||
#endif
|
||||
public:
|
||||
inline AtomicRef ()
|
||||
: m_ref(0)
|
||||
#ifdef HS_DEBUGGING
|
||||
, zeroed(false)
|
||||
#endif
|
||||
{}
|
||||
|
||||
inline void AcknowledgeZeroRef () {
|
||||
#ifdef HS_DEBUGGING
|
||||
zeroed = false;
|
||||
#endif
|
||||
}
|
||||
|
||||
inline long IncRef () {
|
||||
#ifdef HS_DEBUGGING
|
||||
ASSERT(!zeroed);
|
||||
#endif
|
||||
long prev = AtomicAdd(&m_ref, 1);
|
||||
#ifdef REFCOUNT_DEBUGGING
|
||||
DEBUG_MSG("Inc %p: %u", this, prev+1);
|
||||
#endif
|
||||
return prev+1;
|
||||
}
|
||||
inline long IncRef (const char tag[]) {
|
||||
#ifdef HS_DEBUGGING
|
||||
ASSERT(!zeroed);
|
||||
#endif
|
||||
long prev = AtomicAdd(&m_ref, 1);
|
||||
#ifdef REFCOUNT_DEBUGGING
|
||||
DEBUG_MSG("Inc %p %s: %u", this, tag, prev+1);
|
||||
#endif
|
||||
return prev+1;
|
||||
}
|
||||
inline long IncRef (unsigned n) {
|
||||
#ifdef HS_DEBUGGING
|
||||
ASSERT(!zeroed);
|
||||
#endif
|
||||
long prev = AtomicAdd(&m_ref, n);
|
||||
#ifdef REFCOUNT_DEBUGGING
|
||||
DEBUG_MSG("Inc %p: %u", this, prev+n);
|
||||
#endif
|
||||
return prev+n;
|
||||
}
|
||||
inline long IncRef (unsigned n, const char tag[]) {
|
||||
#ifdef HS_DEBUGGING
|
||||
ASSERT(!zeroed);
|
||||
#endif
|
||||
long prev = AtomicAdd(&m_ref, n);
|
||||
#ifdef REFCOUNT_DEBUGGING
|
||||
DEBUG_MSG("Inc %p %s: %u", this, tag, prev+n);
|
||||
#endif
|
||||
return prev+n;
|
||||
}
|
||||
|
||||
inline long DecRef () {
|
||||
#ifdef HS_DEBUGGING
|
||||
ASSERT(!zeroed);
|
||||
#endif
|
||||
long prev;
|
||||
if ((prev = AtomicAdd(&m_ref, -1)) == 1) {
|
||||
#ifdef HS_DEBUGGING
|
||||
zeroed = true;
|
||||
#endif
|
||||
OnZeroRef();
|
||||
}
|
||||
#ifdef REFCOUNT_DEBUGGING
|
||||
DEBUG_MSG("Dec %p: %u", this, prev-1);
|
||||
#endif
|
||||
return prev-1;
|
||||
}
|
||||
inline long DecRef (const char tag[]) {
|
||||
#ifdef HS_DEBUGGING
|
||||
ASSERT(!zeroed);
|
||||
#endif
|
||||
long prev;
|
||||
if ((prev = AtomicAdd(&m_ref, -1)) == 1) {
|
||||
#ifdef HS_DEBUGGING
|
||||
zeroed = true;
|
||||
#endif
|
||||
OnZeroRef();
|
||||
}
|
||||
#ifdef REFCOUNT_DEBUGGING
|
||||
DEBUG_MSG("Dec %p %s: %u", this, tag, prev-1);
|
||||
#endif
|
||||
return prev-1;
|
||||
}
|
||||
|
||||
inline void TransferRef (
|
||||
const char oldTag[],
|
||||
const char newTag[]
|
||||
) {
|
||||
#ifdef HS_DEBUGGING
|
||||
ASSERT(!zeroed);
|
||||
#endif
|
||||
#ifdef REFCOUNT_DEBUGGING
|
||||
DEBUG_MSG("Inc %p %s: (xfer)", this, newTag);
|
||||
DEBUG_MSG("Dec %p %s: (xfer)", this, oldTag);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline unsigned GetRefCount () {
|
||||
return m_ref;
|
||||
}
|
||||
|
||||
inline virtual void OnZeroRef () {
|
||||
delete this;
|
||||
}
|
||||
|
||||
protected:
|
||||
inline virtual ~AtomicRef () {
|
||||
ASSERT(!m_ref);
|
||||
}
|
||||
|
||||
private:
|
||||
long m_ref;
|
||||
};
|
||||
#endif
|
@ -831,13 +831,13 @@ bool plClothingOutfit::IReadFromVault()
|
||||
delete sdlDataRec;
|
||||
}
|
||||
}
|
||||
nodes[i]->DecRef();
|
||||
nodes[i]->UnRef();
|
||||
}
|
||||
|
||||
fSynchClients = true; // set true if the next synch should be bcast
|
||||
ForceUpdate(true);
|
||||
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -874,7 +874,7 @@ void plClothingOutfit::WriteToVault()
|
||||
SDRs.Add(appearanceStateDesc->GetStateDataRecord(0));
|
||||
|
||||
WriteToVault(SDRs);
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
void plClothingOutfit::WriteToVault(const ARRAY(plStateDataRecord*) & SDRs)
|
||||
@ -926,28 +926,28 @@ void plClothingOutfit::WriteToVault(const ARRAY(plStateDataRecord*) & SDRs)
|
||||
if (nodes.Count()) {
|
||||
node = nodes[0];
|
||||
nodes.DeleteUnordered(0);
|
||||
node->IncRef(); // REF: Work
|
||||
node->DecRef(); // REF: Find
|
||||
node->Ref(); // REF: Work
|
||||
node->UnRef(); // REF: Find
|
||||
}
|
||||
else {
|
||||
RelVaultNode * templateNode = new RelVaultNode;
|
||||
templateNode->SetNodeType(plVault::kNodeType_SDL);
|
||||
templates.Add(templateNode);
|
||||
node = templateNode;
|
||||
node->IncRef(); // REF: Create
|
||||
node->IncRef(); // REF: Work
|
||||
node->Ref(); // REF: Create
|
||||
node->Ref(); // REF: Work
|
||||
}
|
||||
|
||||
VaultSDLNode sdl(node);
|
||||
sdl.SetStateDataRecord((*arr)[i], 0);
|
||||
node->DecRef(); // REF: Work
|
||||
node->UnRef(); // REF: Work
|
||||
}
|
||||
}
|
||||
|
||||
// Delete any leftover nodes
|
||||
for (unsigned i = 0; i < nodes.Count(); ++i) {
|
||||
VaultDeleteNode(nodes[i]->GetNodeId());
|
||||
nodes[i]->DecRef(); // REF: Array
|
||||
nodes[i]->UnRef(); // REF: Array
|
||||
}
|
||||
|
||||
// Create actual new nodes from their templates
|
||||
@ -956,13 +956,13 @@ void plClothingOutfit::WriteToVault(const ARRAY(plStateDataRecord*) & SDRs)
|
||||
if (RelVaultNode * actual = VaultCreateNodeAndWaitIncRef(templates[i], &result)) {
|
||||
actuals.Add(actual);
|
||||
}
|
||||
templates[i]->DecRef(); // REF: Create
|
||||
templates[i]->UnRef(); // REF: Create
|
||||
}
|
||||
|
||||
// Add new nodes to outfit folder
|
||||
for (unsigned i = 0; i < actuals.Count(); ++i) {
|
||||
VaultAddChildNodeAndWait(rvn->GetNodeId(), actuals[i]->GetNodeId(), NetCommGetPlayer()->playerInt);
|
||||
actuals[i]->DecRef(); // REF: Create
|
||||
actuals[i]->UnRef(); // REF: Create
|
||||
}
|
||||
|
||||
// Cleanup morph SDRs
|
||||
@ -970,7 +970,7 @@ void plClothingOutfit::WriteToVault(const ARRAY(plStateDataRecord*) & SDRs)
|
||||
delete morphs[i];
|
||||
}
|
||||
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
// XXX HACK. DON'T USE (this function exists for the temp console command Clothing.SwapClothTexHACK)
|
||||
@ -1489,7 +1489,7 @@ bool plClothingOutfit::WriteToFile(const plFileName &filename)
|
||||
|
||||
hsUNIXStream S;
|
||||
if (!S.Open(filename, "wb")) {
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1503,9 +1503,9 @@ bool plClothingOutfit::WriteToFile(const plFileName &filename)
|
||||
S.WriteLE32(sdl.GetSDLDataLength());
|
||||
if (sdl.GetSDLDataLength())
|
||||
S.Write(sdl.GetSDLDataLength(), sdl.GetSDLData());
|
||||
nodes[i]->DecRef();
|
||||
nodes[i]->UnRef();
|
||||
}
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
|
||||
S.Close();
|
||||
return true;
|
||||
@ -1652,7 +1652,7 @@ void plClothingMgr::AddItemsToCloset(hsTArray<plClosetItem> &items)
|
||||
plClothingSDLModifier::PutSingleItemIntoSDR(&items[i], &rec);
|
||||
|
||||
RelVaultNode * templateNode = new RelVaultNode;
|
||||
templateNode->IncRef();
|
||||
templateNode->Ref();
|
||||
templateNode->SetNodeType(plVault::kNodeType_SDL);
|
||||
|
||||
VaultSDLNode sdl(templateNode);
|
||||
@ -1669,12 +1669,12 @@ void plClothingMgr::AddItemsToCloset(hsTArray<plClosetItem> &items)
|
||||
actual->GetNodeId(),
|
||||
NetCommGetPlayer()->playerInt
|
||||
);
|
||||
actual->DecRef(); // REF: Create
|
||||
actual->UnRef(); // REF: Create
|
||||
}
|
||||
templates[i]->DecRef(); // REF: Create
|
||||
templates[i]->UnRef(); // REF: Create
|
||||
}
|
||||
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
void plClothingMgr::GetClosetItems(hsTArray<plClosetItem> &out)
|
||||
@ -1702,7 +1702,7 @@ void plClothingMgr::GetClosetItems(hsTArray<plClosetItem> &out)
|
||||
}
|
||||
}
|
||||
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
void plClothingMgr::GetAllWithSameMesh(plClothingItem *item, hsTArray<plClothingItem*> &out)
|
||||
|
@ -865,7 +865,7 @@ void plSceneInputInterface::ILinkOffereeToAge()
|
||||
VaultRegisterOwnedAgeAndWait(&link);
|
||||
}
|
||||
}
|
||||
linkNode->DecRef();
|
||||
linkNode->UnRef();
|
||||
}
|
||||
|
||||
if (!fSpawnPoint.IsEmpty()) {
|
||||
|
@ -535,14 +535,14 @@ bool plNetLinkingMgr::IProcessVaultNotifyMsg(plVaultNotifyMsg* msg)
|
||||
{
|
||||
VaultAgeInfoNode accInfo(rvnInfo);
|
||||
accInfo.CopyTo(cur->GetAgeInfo());
|
||||
rvnInfo->DecRef();
|
||||
rvnInfo->UnRef();
|
||||
}
|
||||
|
||||
IDoLink(fDeferredLink);
|
||||
fDeferredLink = nil;
|
||||
return true;
|
||||
|
||||
cVaultLink->DecRef();
|
||||
cVaultLink->UnRef();
|
||||
}
|
||||
|
||||
return false;
|
||||
@ -786,7 +786,7 @@ void plNetLinkingMgr::IPostProcessLink( void )
|
||||
accInfo.SetAgeInstName(ageInstName);
|
||||
accInfo.SetAgeInstUuid(ageInstGuid);
|
||||
accInfo.SetOnline(true);
|
||||
rvnInfo->DecRef();
|
||||
rvnInfo->UnRef();
|
||||
}
|
||||
|
||||
switch (link->GetLinkingRules()) {
|
||||
@ -811,9 +811,9 @@ void plNetLinkingMgr::IPostProcessLink( void )
|
||||
);
|
||||
|
||||
if (fldr)
|
||||
fldr->DecRef();
|
||||
fldr->UnRef();
|
||||
if (info)
|
||||
info->DecRef();
|
||||
info->UnRef();
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -838,9 +838,9 @@ void plNetLinkingMgr::IPostProcessLink( void )
|
||||
);
|
||||
|
||||
if (fldr)
|
||||
fldr->DecRef();
|
||||
fldr->UnRef();
|
||||
if (info)
|
||||
info->DecRef();
|
||||
info->UnRef();
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -878,7 +878,7 @@ uint8_t plNetLinkingMgr::IPreProcessLink(void)
|
||||
accInfo.SetAgeInstName(nil);
|
||||
accInfo.SetAgeInstUuid(kNilUuid);
|
||||
accInfo.SetOnline(false);
|
||||
rvnInfo->DecRef();
|
||||
rvnInfo->UnRef();
|
||||
}
|
||||
#else
|
||||
// Update our online status
|
||||
@ -890,7 +890,7 @@ uint8_t plNetLinkingMgr::IPreProcessLink(void)
|
||||
accInfo.SetAgeInstName(ageInstName);
|
||||
accInfo.SetAgeInstUuid(ageInstGuid);
|
||||
accInfo.SetOnline(true);
|
||||
rvnInfo->DecRef();
|
||||
rvnInfo->UnRef();
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1035,7 +1035,7 @@ uint8_t plNetLinkingMgr::IPreProcessLink(void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
linkNode->DecRef();
|
||||
linkNode->UnRef();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -278,7 +278,7 @@ static void PlayerInitCallback (
|
||||
if (RelVaultNode * rvn = VaultGetOwnedAgeLinkIncRef(&info)) {
|
||||
VaultAgeLinkNode acc(rvn);
|
||||
acc.AddSpawnPoint(plSpawnPointInfo(kCityFerryTerminalLinkTitle, kCityFerryTerminalLinkSpawnPtName));
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
VaultProcessPlayerInbox();
|
||||
@ -1126,7 +1126,7 @@ void NetCommSetActivePlayer (//--> plNetCommActivePlayerMsg
|
||||
pInfo.SetOnline(false);
|
||||
NetCliAuthVaultNodeSave(rvn, nil, nil);
|
||||
|
||||
rvn->DecRef();
|
||||
rvn->UnRef();
|
||||
}
|
||||
|
||||
VaultCull(s_player->playerInt);
|
||||
@ -1324,7 +1324,7 @@ void NetCommSetCCRLevel (
|
||||
if (RelVaultNode * rvnInfo = VaultGetPlayerInfoNodeIncRef()) {
|
||||
VaultPlayerInfoNode pInfo(rvnInfo);
|
||||
pInfo.SetCCRLevel(ccrLevel);
|
||||
rvnInfo->DecRef();
|
||||
rvnInfo->UnRef();
|
||||
}
|
||||
|
||||
NetCliAuthSetCCRLevel(ccrLevel);
|
||||
|
@ -287,7 +287,7 @@ enum ENetTransState {
|
||||
kTransStateComplete,
|
||||
};
|
||||
|
||||
struct NetTrans : AtomicRef {
|
||||
struct NetTrans : hsAtomicRefCnt {
|
||||
LINK(NetTrans) m_link;
|
||||
ENetTransState m_state;
|
||||
ENetError m_result;
|
||||
|
@ -57,7 +57,7 @@ namespace Ngl { namespace Auth {
|
||||
*
|
||||
***/
|
||||
|
||||
struct CliAuConn : AtomicRef {
|
||||
struct CliAuConn : hsAtomicRefCnt {
|
||||
CliAuConn ();
|
||||
~CliAuConn ();
|
||||
|
||||
@ -1280,7 +1280,7 @@ static unsigned GetNonZeroTimeMs () {
|
||||
//============================================================================
|
||||
static CliAuConn * GetConnIncRef_CS (const char tag[]) {
|
||||
if (CliAuConn * conn = s_active) {
|
||||
conn->IncRef(tag);
|
||||
conn->Ref(tag);
|
||||
return conn;
|
||||
}
|
||||
return nil;
|
||||
@ -1312,7 +1312,7 @@ static void UnlinkAndAbandonConn_CS (CliAuConn * conn) {
|
||||
AsyncSocketDisconnect(conn->sock, true);
|
||||
}
|
||||
else {
|
||||
conn->DecRef("Lifetime");
|
||||
conn->UnRef("Lifetime");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1369,7 +1369,7 @@ static void CheckedReconnect (CliAuConn * conn, ENetError error) {
|
||||
// Cancel all transactions in progress on this connection.
|
||||
NetTransCancelByConnId(conn->seq, kNetErrTimeout);
|
||||
// conn is dead.
|
||||
conn->DecRef("Lifetime");
|
||||
conn->UnRef("Lifetime");
|
||||
ReportNetError(kNetProtocolCli2Auth, error);
|
||||
}
|
||||
else {
|
||||
@ -1405,7 +1405,7 @@ static void NotifyConnSocketConnectFailed (CliAuConn * conn) {
|
||||
|
||||
CheckedReconnect(conn, kNetErrConnectFailed);
|
||||
|
||||
conn->DecRef("Connecting");
|
||||
conn->UnRef("Connecting");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -1426,7 +1426,7 @@ static void NotifyConnSocketDisconnect (CliAuConn * conn) {
|
||||
|
||||
CheckedReconnect(conn, kNetErrDisconnected);
|
||||
|
||||
conn->DecRef("Connected");
|
||||
conn->UnRef("Connected");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -1540,7 +1540,7 @@ static void Connect (
|
||||
conn->lastHeardTimeMs = GetNonZeroTimeMs(); // used in connect timeout, and ping timeout
|
||||
strncpy(conn->name, name, arrsize(conn->name));
|
||||
|
||||
conn->IncRef("Lifetime");
|
||||
conn->Ref("Lifetime");
|
||||
conn->AutoReconnect();
|
||||
}
|
||||
|
||||
@ -1571,7 +1571,7 @@ static void AsyncLookupCallback (
|
||||
//===========================================================================
|
||||
static unsigned CliAuConnTimerDestroyed (void * param) {
|
||||
CliAuConn * conn = (CliAuConn *) param;
|
||||
conn->DecRef("TimerDestroyed");
|
||||
conn->UnRef("TimerDestroyed");
|
||||
return kAsyncTimeInfinite;
|
||||
}
|
||||
|
||||
@ -1617,7 +1617,7 @@ void CliAuConn::TimerReconnect () {
|
||||
s_critsect.Leave();
|
||||
}
|
||||
else {
|
||||
IncRef("Connecting");
|
||||
Ref("Connecting");
|
||||
|
||||
// Remember the time we started the reconnect attempt, guarding against
|
||||
// TimeGetMs() returning zero (unlikely), as a value of zero indicates
|
||||
@ -1656,7 +1656,7 @@ void CliAuConn::StartAutoReconnect () {
|
||||
void CliAuConn::AutoReconnect () {
|
||||
|
||||
ASSERT(!reconnectTimer);
|
||||
IncRef("ReconnectTimer");
|
||||
Ref("ReconnectTimer");
|
||||
critsect.Enter();
|
||||
{
|
||||
AsyncTimerCreate(
|
||||
@ -1690,7 +1690,7 @@ bool CliAuConn::AutoReconnectEnabled () {
|
||||
//============================================================================
|
||||
void CliAuConn::AutoPing () {
|
||||
ASSERT(!pingTimer);
|
||||
IncRef("PingTimer");
|
||||
Ref("PingTimer");
|
||||
critsect.Enter();
|
||||
{
|
||||
AsyncTimerCreate(
|
||||
@ -3941,7 +3941,7 @@ void VaultFetchNodeTrans::Post () {
|
||||
m_node
|
||||
);
|
||||
if (m_node)
|
||||
m_node->DecRef("Recv");
|
||||
m_node->UnRef("Recv");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -3954,7 +3954,7 @@ bool VaultFetchNodeTrans::Recv (
|
||||
if (IS_NET_SUCCESS(reply.result)) {
|
||||
m_node = new NetVaultNode;
|
||||
m_node->Read_LCS(reply.nodeBuffer, reply.nodeBytes, 0);
|
||||
m_node->IncRef("Recv");
|
||||
m_node->Ref("Recv");
|
||||
}
|
||||
|
||||
m_result = reply.result;
|
||||
@ -3980,12 +3980,12 @@ VaultFindNodeTrans::VaultFindNodeTrans (
|
||||
, m_param(param)
|
||||
, m_node(templateNode)
|
||||
{
|
||||
m_node->IncRef();
|
||||
m_node->Ref();
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
VaultFindNodeTrans::~VaultFindNodeTrans () {
|
||||
m_node->DecRef();
|
||||
m_node->UnRef();
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -4056,7 +4056,7 @@ VaultCreateNodeTrans::VaultCreateNodeTrans (
|
||||
, m_param(param)
|
||||
, m_nodeId(0)
|
||||
{
|
||||
m_templateNode->IncRef();
|
||||
m_templateNode->Ref();
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -4086,7 +4086,7 @@ void VaultCreateNodeTrans::Post () {
|
||||
m_param,
|
||||
m_nodeId
|
||||
);
|
||||
m_templateNode->DecRef();
|
||||
m_templateNode->UnRef();
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -5024,7 +5024,7 @@ bool NetAuthTrans::AcquireConn () {
|
||||
//============================================================================
|
||||
void NetAuthTrans::ReleaseConn () {
|
||||
if (m_conn) {
|
||||
m_conn->DecRef("AcquireConn");
|
||||
m_conn->UnRef("AcquireConn");
|
||||
m_conn = nil;
|
||||
}
|
||||
}
|
||||
@ -5399,7 +5399,7 @@ void NetCliAuthSetCCRLevel (
|
||||
};
|
||||
|
||||
conn->Send(msg, arrsize(msg));
|
||||
conn->DecRef("SetCCRLevel");
|
||||
conn->UnRef("SetCCRLevel");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -5433,7 +5433,7 @@ void NetCliAuthSetAgePublic (
|
||||
|
||||
conn->Send(msg, arrsize(msg));
|
||||
|
||||
conn->DecRef("SetAgePublic");
|
||||
conn->UnRef("SetAgePublic");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -5733,7 +5733,7 @@ void NetCliAuthVaultSetSeen (
|
||||
|
||||
conn->Send(msg, arrsize(msg));
|
||||
|
||||
conn->DecRef("SetSeen");
|
||||
conn->UnRef("SetSeen");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -5753,7 +5753,7 @@ void NetCliAuthVaultSendNode (
|
||||
|
||||
conn->Send(msg, arrsize(msg));
|
||||
|
||||
conn->DecRef("SendNode");
|
||||
conn->UnRef("SendNode");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -5817,7 +5817,7 @@ void NetCliAuthPropagateBuffer (
|
||||
|
||||
conn->Send(msg, arrsize(msg));
|
||||
|
||||
conn->DecRef("PropBuffer");
|
||||
conn->UnRef("PropBuffer");
|
||||
|
||||
}
|
||||
|
||||
@ -5834,7 +5834,7 @@ void NetCliAuthLogPythonTraceback (const wchar_t traceback[]) {
|
||||
|
||||
conn->Send(msg, arrsize(msg));
|
||||
|
||||
conn->DecRef("LogTraceback");
|
||||
conn->UnRef("LogTraceback");
|
||||
}
|
||||
|
||||
|
||||
@ -5851,7 +5851,7 @@ void NetCliAuthLogStackDump (const wchar_t stackdump[]) {
|
||||
|
||||
conn->Send(msg, arrsize(msg));
|
||||
|
||||
conn->DecRef("LogStackDump");
|
||||
conn->UnRef("LogStackDump");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -5869,7 +5869,7 @@ void NetCliAuthLogClientDebuggerConnect () {
|
||||
|
||||
conn->Send(msg, arrsize(msg));
|
||||
|
||||
conn->DecRef();
|
||||
conn->UnRef();
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -5908,7 +5908,7 @@ void NetCliAuthKickPlayer (
|
||||
};
|
||||
|
||||
conn->Send(msg, arrsize(msg));
|
||||
conn->DecRef("KickPlayer");
|
||||
conn->UnRef("KickPlayer");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
|
@ -60,7 +60,7 @@ namespace Ngl { namespace File {
|
||||
*
|
||||
***/
|
||||
|
||||
struct CliFileConn : AtomicRef {
|
||||
struct CliFileConn : hsAtomicRefCnt {
|
||||
LINK(CliFileConn) link;
|
||||
hsReaderWriterLock sockLock; // to protect the socket pointer so we don't nuke it while using it
|
||||
AsyncSocket sock;
|
||||
@ -251,7 +251,7 @@ static unsigned GetNonZeroTimeMs () {
|
||||
//============================================================================
|
||||
static CliFileConn * GetConnIncRef_CS (const char tag[]) {
|
||||
if (CliFileConn * conn = s_active) {
|
||||
conn->IncRef(tag);
|
||||
conn->Ref(tag);
|
||||
return conn;
|
||||
}
|
||||
return nil;
|
||||
@ -291,7 +291,7 @@ static void UnlinkAndAbandonConn_CS (CliFileConn * conn) {
|
||||
conn->sockLock.UnlockForReading();
|
||||
}
|
||||
if (needsDecref) {
|
||||
conn->DecRef("Lifetime");
|
||||
conn->UnRef("Lifetime");
|
||||
}
|
||||
}
|
||||
|
||||
@ -346,9 +346,9 @@ static void NotifyConnSocketConnectFailed (CliFileConn * conn) {
|
||||
if (s_running && conn->AutoReconnectEnabled())
|
||||
conn->StartAutoReconnect();
|
||||
else
|
||||
conn->DecRef("Lifetime"); // if we are not reconnecting, this socket is done, so remove the lifetime ref
|
||||
conn->UnRef("Lifetime"); // if we are not reconnecting, this socket is done, so remove the lifetime ref
|
||||
}
|
||||
conn->DecRef("Connecting");
|
||||
conn->UnRef("Connecting");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -424,10 +424,10 @@ static void NotifyConnSocketDisconnect (CliFileConn * conn) {
|
||||
if (conn->AutoReconnectEnabled())
|
||||
conn->StartAutoReconnect();
|
||||
else
|
||||
conn->DecRef("Lifetime"); // if we are not reconnecting, this socket is done, so remove the lifetime ref
|
||||
conn->UnRef("Lifetime"); // if we are not reconnecting, this socket is done, so remove the lifetime ref
|
||||
}
|
||||
|
||||
conn->DecRef("Connected");
|
||||
conn->UnRef("Connected");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -552,7 +552,7 @@ static void Connect (
|
||||
conn->seq = ConnNextSequence();
|
||||
conn->lastHeardTimeMs = GetNonZeroTimeMs(); // used in connect timeout, and ping timeout
|
||||
|
||||
conn->IncRef("Lifetime");
|
||||
conn->Ref("Lifetime");
|
||||
conn->AutoReconnect();
|
||||
}
|
||||
|
||||
@ -609,7 +609,7 @@ void CliFileConn::TimerReconnect () {
|
||||
s_critsect.Leave();
|
||||
}
|
||||
else {
|
||||
IncRef("Connecting");
|
||||
Ref("Connecting");
|
||||
|
||||
// Remember the time we started the reconnect attempt, guarding against
|
||||
// TimeGetMs() returning zero (unlikely), as a value of zero indicates
|
||||
@ -654,7 +654,7 @@ void CliFileConn::AutoReconnect () {
|
||||
timerCritsect.Enter();
|
||||
{
|
||||
ASSERT(!reconnectTimer);
|
||||
IncRef("ReconnectTimer");
|
||||
Ref("ReconnectTimer");
|
||||
AsyncTimerCreate(
|
||||
&reconnectTimer,
|
||||
CliFileConnTimerReconnectProc,
|
||||
@ -668,7 +668,7 @@ void CliFileConn::AutoReconnect () {
|
||||
//===========================================================================
|
||||
static unsigned CliFileConnTimerDestroyed (void * param) {
|
||||
CliFileConn * sock = (CliFileConn *) param;
|
||||
sock->DecRef("TimerDestroyed");
|
||||
sock->UnRef("TimerDestroyed");
|
||||
return kAsyncTimeInfinite;
|
||||
}
|
||||
|
||||
@ -693,7 +693,7 @@ static unsigned CliFileConnPingTimerProc (void * param) {
|
||||
//============================================================================
|
||||
void CliFileConn::AutoPing () {
|
||||
ASSERT(!pingTimer);
|
||||
IncRef("PingTimer");
|
||||
Ref("PingTimer");
|
||||
timerCritsect.Enter();
|
||||
{
|
||||
sockLock.LockForReading();
|
||||
@ -1270,7 +1270,7 @@ bool NetFileTrans::AcquireConn () {
|
||||
//============================================================================
|
||||
void NetFileTrans::ReleaseConn () {
|
||||
if (m_conn) {
|
||||
m_conn->DecRef("AcquireConn");
|
||||
m_conn->UnRef("AcquireConn");
|
||||
m_conn = nil;
|
||||
}
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ namespace Ngl { namespace Game {
|
||||
*
|
||||
***/
|
||||
|
||||
struct CliGmConn : AtomicRef {
|
||||
struct CliGmConn : hsAtomicRefCnt {
|
||||
LINK(CliGmConn) link;
|
||||
|
||||
CCritSect critsect;
|
||||
@ -176,7 +176,7 @@ static unsigned GetNonZeroTimeMs () {
|
||||
static CliGmConn * GetConnIncRef_CS (const char tag[]) {
|
||||
if (CliGmConn * conn = s_active)
|
||||
if (conn->cli) {
|
||||
conn->IncRef(tag);
|
||||
conn->Ref(tag);
|
||||
return conn;
|
||||
}
|
||||
return nil;
|
||||
@ -205,7 +205,7 @@ static void UnlinkAndAbandonConn_CS (CliGmConn * conn) {
|
||||
AsyncSocketDisconnect(conn->sock, true);
|
||||
}
|
||||
else {
|
||||
conn->DecRef("Lifetime");
|
||||
conn->UnRef("Lifetime");
|
||||
}
|
||||
}
|
||||
|
||||
@ -260,8 +260,8 @@ static void NotifyConnSocketConnectFailed (CliGmConn * conn) {
|
||||
s_critsect.Leave();
|
||||
|
||||
NetTransCancelByConnId(conn->seq, kNetErrTimeout);
|
||||
conn->DecRef("Connecting");
|
||||
conn->DecRef("Lifetime");
|
||||
conn->UnRef("Connecting");
|
||||
conn->UnRef("Lifetime");
|
||||
|
||||
if (notify)
|
||||
ReportNetError(kNetProtocolCli2Game, kNetErrConnectFailed);
|
||||
@ -288,8 +288,8 @@ static void NotifyConnSocketDisconnect (CliGmConn * conn) {
|
||||
|
||||
// Cancel all transactions in process on this connection.
|
||||
NetTransCancelByConnId(conn->seq, kNetErrTimeout);
|
||||
conn->DecRef("Connected");
|
||||
conn->DecRef("Lifetime");
|
||||
conn->UnRef("Connected");
|
||||
conn->UnRef("Lifetime");
|
||||
|
||||
if (notify)
|
||||
ReportNetError(kNetProtocolCli2Game, kNetErrDisconnected);
|
||||
@ -361,8 +361,8 @@ static void Connect (
|
||||
conn->seq = ConnNextSequence();
|
||||
conn->lastHeardTimeMs = GetNonZeroTimeMs();
|
||||
|
||||
conn->IncRef("Lifetime");
|
||||
conn->IncRef("Connecting");
|
||||
conn->Ref("Lifetime");
|
||||
conn->Ref("Connecting");
|
||||
|
||||
s_critsect.Enter();
|
||||
{
|
||||
@ -403,7 +403,7 @@ static void Connect (
|
||||
//===========================================================================
|
||||
static unsigned CliGmConnTimerDestroyed (void * param) {
|
||||
CliGmConn * conn = (CliGmConn *) param;
|
||||
conn->DecRef("TimerDestroyed");
|
||||
conn->UnRef("TimerDestroyed");
|
||||
return kAsyncTimeInfinite;
|
||||
}
|
||||
|
||||
@ -431,7 +431,7 @@ CliGmConn::~CliGmConn () {
|
||||
//============================================================================
|
||||
void CliGmConn::AutoPing () {
|
||||
ASSERT(!pingTimer);
|
||||
IncRef("PingTimer");
|
||||
Ref("PingTimer");
|
||||
critsect.Enter();
|
||||
{
|
||||
AsyncTimerCreate(
|
||||
@ -693,7 +693,7 @@ bool NetGameTrans::AcquireConn () {
|
||||
//============================================================================
|
||||
void NetGameTrans::ReleaseConn () {
|
||||
if (m_conn) {
|
||||
m_conn->DecRef("AcquireConn");
|
||||
m_conn->UnRef("AcquireConn");
|
||||
m_conn = nil;
|
||||
}
|
||||
}
|
||||
@ -860,7 +860,7 @@ void NetCliGamePropagateBuffer (
|
||||
|
||||
conn->Send(msg, arrsize(msg));
|
||||
|
||||
conn->DecRef("PropBuffer");
|
||||
conn->UnRef("PropBuffer");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -882,5 +882,5 @@ void NetCliGameSendGameMgrMsg (GameMsgHeader * msgHdr) {
|
||||
|
||||
conn->Send(msg, arrsize(msg));
|
||||
|
||||
conn->DecRef("GameMgrMsg");
|
||||
conn->UnRef("GameMgrMsg");
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ namespace Ngl { namespace GateKeeper {
|
||||
*
|
||||
***/
|
||||
|
||||
struct CliGkConn : AtomicRef {
|
||||
struct CliGkConn : hsAtomicRefCnt {
|
||||
CliGkConn ();
|
||||
~CliGkConn ();
|
||||
|
||||
@ -208,7 +208,7 @@ static unsigned GetNonZeroTimeMs () {
|
||||
//============================================================================
|
||||
static CliGkConn * GetConnIncRef_CS (const char tag[]) {
|
||||
if (CliGkConn * conn = s_active) {
|
||||
conn->IncRef(tag);
|
||||
conn->Ref(tag);
|
||||
return conn;
|
||||
}
|
||||
return nil;
|
||||
@ -240,7 +240,7 @@ static void UnlinkAndAbandonConn_CS (CliGkConn * conn) {
|
||||
AsyncSocketDisconnect(conn->sock, true);
|
||||
}
|
||||
else {
|
||||
conn->DecRef("Lifetime");
|
||||
conn->UnRef("Lifetime");
|
||||
}
|
||||
}
|
||||
|
||||
@ -303,7 +303,7 @@ static void CheckedReconnect (CliGkConn * conn, ENetError error) {
|
||||
// Cancel all transactions in progress on this connection.
|
||||
NetTransCancelByConnId(conn->seq, kNetErrTimeout);
|
||||
// conn is dead.
|
||||
conn->DecRef("Lifetime");
|
||||
conn->UnRef("Lifetime");
|
||||
ReportNetError(kNetProtocolCli2GateKeeper, error);
|
||||
}
|
||||
else {
|
||||
@ -339,7 +339,7 @@ static void NotifyConnSocketConnectFailed (CliGkConn * conn) {
|
||||
|
||||
CheckedReconnect(conn, kNetErrConnectFailed);
|
||||
|
||||
conn->DecRef("Connecting");
|
||||
conn->UnRef("Connecting");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -359,8 +359,8 @@ static void NotifyConnSocketDisconnect (CliGkConn * conn) {
|
||||
|
||||
// Cancel all transactions in process on this connection.
|
||||
NetTransCancelByConnId(conn->seq, kNetErrTimeout);
|
||||
conn->DecRef("Connected");
|
||||
conn->DecRef("Lifetime");
|
||||
conn->UnRef("Connected");
|
||||
conn->UnRef("Lifetime");
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@ -474,7 +474,7 @@ static void Connect (
|
||||
conn->lastHeardTimeMs = GetNonZeroTimeMs(); // used in connect timeout, and ping timeout
|
||||
strncpy(conn->name, name, arrsize(conn->name));
|
||||
|
||||
conn->IncRef("Lifetime");
|
||||
conn->Ref("Lifetime");
|
||||
conn->AutoReconnect();
|
||||
}
|
||||
|
||||
@ -507,7 +507,7 @@ static void AsyncLookupCallback (
|
||||
//===========================================================================
|
||||
static unsigned CliGkConnTimerDestroyed (void * param) {
|
||||
CliGkConn * conn = (CliGkConn *) param;
|
||||
conn->DecRef("TimerDestroyed");
|
||||
conn->UnRef("TimerDestroyed");
|
||||
return kAsyncTimeInfinite;
|
||||
}
|
||||
|
||||
@ -553,7 +553,7 @@ void CliGkConn::TimerReconnect () {
|
||||
s_critsect.Leave();
|
||||
}
|
||||
else {
|
||||
IncRef("Connecting");
|
||||
Ref("Connecting");
|
||||
|
||||
// Remember the time we started the reconnect attempt, guarding against
|
||||
// TimeGetMs() returning zero (unlikely), as a value of zero indicates
|
||||
@ -592,7 +592,7 @@ void CliGkConn::StartAutoReconnect () {
|
||||
void CliGkConn::AutoReconnect () {
|
||||
|
||||
ASSERT(!reconnectTimer);
|
||||
IncRef("ReconnectTimer");
|
||||
Ref("ReconnectTimer");
|
||||
critsect.Enter();
|
||||
{
|
||||
AsyncTimerCreate(
|
||||
@ -626,7 +626,7 @@ bool CliGkConn::AutoReconnectEnabled () {
|
||||
//============================================================================
|
||||
void CliGkConn::AutoPing () {
|
||||
ASSERT(!pingTimer);
|
||||
IncRef("PingTimer");
|
||||
Ref("PingTimer");
|
||||
critsect.Enter();
|
||||
{
|
||||
AsyncTimerCreate(
|
||||
@ -970,7 +970,7 @@ bool NetGateKeeperTrans::AcquireConn () {
|
||||
//============================================================================
|
||||
void NetGateKeeperTrans::ReleaseConn () {
|
||||
if (m_conn) {
|
||||
m_conn->DecRef("AcquireConn");
|
||||
m_conn->UnRef("AcquireConn");
|
||||
m_conn = nil;
|
||||
}
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ static NetTrans * FindTransIncRef_CS (unsigned transId, const char tag[]) {
|
||||
// There shouldn't be more than a few transactions; just do a linear scan
|
||||
for (NetTrans * trans = s_transactions.Head(); trans; trans = s_transactions.Next(trans))
|
||||
if (trans->m_transId == transId) {
|
||||
trans->IncRef(tag);
|
||||
trans->Ref(tag);
|
||||
return trans;
|
||||
}
|
||||
|
||||
@ -197,7 +197,7 @@ unsigned NetTransGetTimeoutMs () {
|
||||
|
||||
//============================================================================
|
||||
void NetTransSend (NetTrans * trans) {
|
||||
trans->IncRef("Lifetime");
|
||||
trans->Ref("Lifetime");
|
||||
s_critsect.Enter();
|
||||
{
|
||||
static unsigned s_transId;
|
||||
@ -225,7 +225,7 @@ bool NetTransRecv (unsigned transId, const uint8_t msg[], unsigned bytes) {
|
||||
if (!result)
|
||||
NetTransCancel(transId, kNetErrInternalError);
|
||||
|
||||
trans->DecRef("Recv");
|
||||
trans->UnRef("Recv");
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -345,13 +345,13 @@ void NetTransUpdate () {
|
||||
while (NetTrans * trans = completed.Head()) {
|
||||
completed.Unlink(trans);
|
||||
trans->Post();
|
||||
trans->DecRef("Lifetime");
|
||||
trans->UnRef("Lifetime");
|
||||
}
|
||||
// Post completed parent transactions
|
||||
while (NetTrans * trans = parentCompleted.Head()) {
|
||||
parentCompleted.Unlink(trans);
|
||||
trans->Post();
|
||||
trans->DecRef("Lifetime");
|
||||
trans->UnRef("Lifetime");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
//
|
||||
// refcntable data
|
||||
//
|
||||
class plNetCommonMessageData : public hsSafeRefCnt
|
||||
class plNetCommonMessageData : public hsAtomicRefCnt
|
||||
{
|
||||
private:
|
||||
char *fData; // sent
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -439,10 +439,10 @@ bool VaultAgeLinkNode::CopyTo (plAgeLinkStruct * link) {
|
||||
if (RelVaultNode * info = me->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) {
|
||||
VaultAgeInfoNode access(info);
|
||||
access.CopyTo(link->GetAgeInfo());
|
||||
me->DecRef();
|
||||
me->UnRef();
|
||||
return true;
|
||||
}
|
||||
me->DecRef();
|
||||
me->UnRef();
|
||||
}
|
||||
link->Clear();
|
||||
return false;
|
||||
|
Reference in New Issue
Block a user