mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-18 11:19:10 +00:00
Merge pull request #388 from Hoikas/leaks
Fix some leaks revealed by Coverity
This commit is contained in:
@ -183,27 +183,23 @@ PyObject *pyVaultPlayerNode::GetPlayerInfo()
|
|||||||
|
|
||||||
PyObject *pyVaultPlayerNode::GetLinkToMyNeighborhood()
|
PyObject *pyVaultPlayerNode::GetLinkToMyNeighborhood()
|
||||||
{
|
{
|
||||||
plAgeLinkStruct * link = new plAgeLinkStruct();
|
plAgeLinkStruct link;
|
||||||
|
if (VaultGetLinkToMyNeighborhood(&link)) {
|
||||||
if (VaultGetLinkToMyNeighborhood(link)) {
|
PyObject * result = pyAgeLinkStruct::New(&link);
|
||||||
PyObject * result = pyAgeLinkStruct::New(link);
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
delete link;
|
|
||||||
PYTHON_RETURN_NONE;
|
PYTHON_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
PyObject *pyVaultPlayerNode::GetLinkToCity()
|
PyObject *pyVaultPlayerNode::GetLinkToCity()
|
||||||
{
|
{
|
||||||
plAgeLinkStruct * link = new plAgeLinkStruct();
|
plAgeLinkStruct link;
|
||||||
|
if (VaultGetLinkToCity(&link)) {
|
||||||
if (VaultGetLinkToCity(link)) {
|
PyObject * result = pyAgeLinkStruct::New(&link);
|
||||||
PyObject * result = pyAgeLinkStruct::New(link);
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
delete link;
|
|
||||||
PYTHON_RETURN_NONE;
|
PYTHON_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,6 +43,8 @@ Mead, WA 99021
|
|||||||
#include "plClipboard.h"
|
#include "plClipboard.h"
|
||||||
#include "hsWindows.h"
|
#include "hsWindows.h"
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
plClipboard& plClipboard::GetInstance()
|
plClipboard& plClipboard::GetInstance()
|
||||||
{
|
{
|
||||||
static plClipboard theInstance;
|
static plClipboard theInstance;
|
||||||
@ -93,8 +95,8 @@ void plClipboard::SetClipboardText(const plString& text)
|
|||||||
if (len == 0)
|
if (len == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
HGLOBAL copy = ::GlobalAlloc(GMEM_MOVEABLE, (len + 1) * sizeof(wchar_t));
|
std::unique_ptr<void, HGLOBAL(WINAPI*)(HGLOBAL)> copy(::GlobalAlloc(GMEM_MOVEABLE, (len + 1) * sizeof(wchar_t)), ::GlobalFree);
|
||||||
if (copy == NULL)
|
if (!copy)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!::OpenClipboard(NULL))
|
if (!::OpenClipboard(NULL))
|
||||||
@ -102,12 +104,12 @@ void plClipboard::SetClipboardText(const plString& text)
|
|||||||
|
|
||||||
::EmptyClipboard();
|
::EmptyClipboard();
|
||||||
|
|
||||||
wchar_t* target = (wchar_t*)::GlobalLock(copy);
|
wchar_t* target = (wchar_t*)::GlobalLock(copy.get());
|
||||||
memcpy(target, buf.GetData(), (len + 1) * sizeof(wchar_t));
|
memcpy(target, buf.GetData(), (len + 1) * sizeof(wchar_t));
|
||||||
target[len] = '\0';
|
target[len] = '\0';
|
||||||
::GlobalUnlock(copy);
|
::GlobalUnlock(copy.get());
|
||||||
|
|
||||||
::SetClipboardData(CF_UNICODETEXT, copy);
|
::SetClipboardData(CF_UNICODETEXT, copy.get());
|
||||||
::CloseClipboard();
|
::CloseClipboard();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -740,19 +740,18 @@ void plNetLinkingMgr::OfferLinkToPlayer( const plAgeLinkStruct * inInfo, uint32_
|
|||||||
// my special version - cjp
|
// my special version - cjp
|
||||||
void plNetLinkingMgr::OfferLinkToPlayer( const plAgeLinkStruct * inInfo, uint32_t playerID, plKey replyKey )
|
void plNetLinkingMgr::OfferLinkToPlayer( const plAgeLinkStruct * inInfo, uint32_t playerID, plKey replyKey )
|
||||||
{
|
{
|
||||||
|
|
||||||
plNetClientMgr *mgr = plNetClientMgr::GetInstance();
|
plNetClientMgr *mgr = plNetClientMgr::GetInstance();
|
||||||
plLinkToAgeMsg * linkM = new plLinkToAgeMsg(inInfo);
|
|
||||||
linkM->AddReceiver(mgr->GetKey());
|
|
||||||
|
|
||||||
plKey host = mgr->GetLocalPlayerKey();
|
|
||||||
|
|
||||||
plNetTransport &transport = mgr->TransportMgr();
|
plNetTransport &transport = mgr->TransportMgr();
|
||||||
int guestIdx = transport.FindMember(playerID);
|
int guestIdx = transport.FindMember(playerID);
|
||||||
plNetTransportMember *guestMem = transport.GetMember(guestIdx); // -1 ?
|
plNetTransportMember *guestMem = transport.GetMember(guestIdx); // -1 ?
|
||||||
if (guestMem)
|
if (guestMem)
|
||||||
{
|
{
|
||||||
|
plLinkToAgeMsg* linkM = new plLinkToAgeMsg(inInfo);
|
||||||
|
linkM->AddReceiver(mgr->GetKey());
|
||||||
|
|
||||||
plKey guest = guestMem->GetAvatarKey();
|
plKey guest = guestMem->GetAvatarKey();
|
||||||
|
plKey host = mgr->GetLocalPlayerKey();
|
||||||
plAvatarMgr::OfferLinkingBook(host, guest, linkM, replyKey);
|
plAvatarMgr::OfferLinkingBook(host, guest, linkM, replyKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user