From 2de6603f69b343c3245043ab4c05292a617bd9ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Fri, 28 Nov 2014 12:58:45 +0000 Subject: Use JSONROOT everywhere to simplify code and fix memleaks (in Dropbox and Steam) git-svn-id: http://svn.miranda-ng.org/main/trunk@11130 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Steam/src/steam_account.cpp | 35 ++++++++--------------------------- 1 file changed, 8 insertions(+), 27 deletions(-) (limited to 'protocols/Steam/src/steam_account.cpp') diff --git a/protocols/Steam/src/steam_account.cpp b/protocols/Steam/src/steam_account.cpp index fa4cdf1804..b428896fcc 100644 --- a/protocols/Steam/src/steam_account.cpp +++ b/protocols/Steam/src/steam_account.cpp @@ -20,13 +20,12 @@ void CSteamProto::OnGotRsaKey(const NETLIBHTTPREQUEST *response, void *arg) return; // load rsa key parts - JSONNODE *root = json_parse(response->pData), *node; + JSONROOT root(response->pData); if (!root) return; - node = json_get(root, "success"); + JSONNODE *node = json_get(root, "success"); if (!json_as_bool(node)) { - json_delete(root); return; } @@ -45,8 +44,6 @@ void CSteamProto::OnGotRsaKey(const NETLIBHTTPREQUEST *response, void *arg) ptrA base64RsaEncryptedPassword; ptrA password(getStringA("Password")); - json_delete(root); - DWORD error = 0; DWORD encryptedSize = 0; DWORD passwordSize = (DWORD)strlen(password); @@ -83,9 +80,9 @@ void CSteamProto::OnAuthorization(const NETLIBHTTPREQUEST *response, void *arg) return; } - JSONNODE *root = json_parse(response->pData), *node; + JSONROOT root(response->pData); - node = json_get(root, "success"); + JSONNODE *node = json_get(root, "success"); if (json_as_bool(node) == 0) { node = json_get(root, "message"); @@ -94,7 +91,6 @@ void CSteamProto::OnAuthorization(const NETLIBHTTPREQUEST *response, void *arg) { ShowNotification(TranslateTS(message)); SetStatus(ID_STATUS_OFFLINE); - json_delete(root); return; } @@ -110,13 +106,7 @@ void CSteamProto::OnAuthorization(const NETLIBHTTPREQUEST *response, void *arg) GuardParam guard; lstrcpyA(guard.domain, emailDomain); - if (DialogBoxParam( - g_hInstance, - MAKEINTRESOURCE(IDD_GUARD), - NULL, - CSteamProto::GuardProc, - (LPARAM)&guard) != 1) { - json_delete(root); + if (DialogBoxParam(g_hInstance, MAKEINTRESOURCE(IDD_GUARD), NULL, CSteamProto::GuardProc, (LPARAM)&guard) != 1) { return; } @@ -162,7 +152,6 @@ void CSteamProto::OnAuthorization(const NETLIBHTTPREQUEST *response, void *arg) if (res != 1) { SetStatus(ID_STATUS_OFFLINE); - json_delete(root); return; } @@ -175,7 +164,6 @@ void CSteamProto::OnAuthorization(const NETLIBHTTPREQUEST *response, void *arg) &CSteamProto::OnAuthorization); } - json_delete(root); return; } @@ -183,12 +171,11 @@ void CSteamProto::OnAuthorization(const NETLIBHTTPREQUEST *response, void *arg) if (!json_as_bool(node)) { SetStatus(ID_STATUS_OFFLINE); - json_delete(root); return; } node = json_get(root, "oauth"); - JSONNODE *nroot = json_parse(ptrA(mir_u2a(json_as_string(node)))); + JSONROOT nroot(ptrA(mir_u2a(json_as_string(node)))); node = json_get(nroot, "steamid"); ptrA steamId(mir_u2a(json_as_string(node))); @@ -204,9 +191,6 @@ void CSteamProto::OnAuthorization(const NETLIBHTTPREQUEST *response, void *arg) delSetting("Timestamp"); delSetting("EncryptedPassword"); - json_delete(nroot); - json_delete(root); - PushRequest( new SteamWebApi::GetSessionRequest(token, steamId, cookie), &CSteamProto::OnGotSession); @@ -244,9 +228,9 @@ void CSteamProto::OnLoggedOn(const NETLIBHTTPREQUEST *response, void *arg) return; } - JSONNODE *root = json_parse(response->pData), *node; + JSONROOT root(response->pData); - node = json_get(root, "error"); + JSONNODE *node = json_get(root, "error"); ptrW error(json_as_string(node)); if (lstrcmpi(error, L"OK")/* || response->resultCode == HTTP_STATUS_UNAUTHORIZED*/) { @@ -256,7 +240,6 @@ void CSteamProto::OnLoggedOn(const NETLIBHTTPREQUEST *response, void *arg) // set status to offline m_iStatus = m_iDesiredStatus = ID_STATUS_OFFLINE; ProtoBroadcastAck(NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)ID_STATUS_CONNECTING, ID_STATUS_OFFLINE); - json_delete(root); return; } @@ -266,8 +249,6 @@ void CSteamProto::OnLoggedOn(const NETLIBHTTPREQUEST *response, void *arg) node = json_get(root, "message"); setDword("MessageID", json_as_int(node)); - json_delete(root); - // load contact list ptrA token(getStringA("TokenSecret")); ptrA steamId(getStringA("SteamID")); -- cgit v1.2.3