Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: src/plugin/PluginClass.cpp

Issue 5163581322559488: Issue 1283 - wrong usage of memset, fix sizeof, make proper initializing (Closed)
Patch Set: remove intializating call Created Oct. 13, 2014, 9:47 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/plugin/PluginClass.cpp
===================================================================
--- a/src/plugin/PluginClass.cpp
+++ b/src/plugin/PluginClass.cpp
@@ -14,6 +14,7 @@
#include "../shared/Utils.h"
#include "../shared/Dictionary.h"
#include <thread>
+#include <array>
#ifdef DEBUG_HIDE_EL
DWORD profileTime = 0;
@@ -415,17 +416,17 @@
HKEY pHkey;
HKEY pHkeySub;
RegOpenCurrentUser(KEY_QUERY_VALUE, &pHkey);
- DWORD trueth = 1;
- DWORD truethSize = sizeof(DWORD);
+ DWORD truth = 1;
+ DWORD truthSize = sizeof(truth);
RegOpenKey(pHkey, L"Software\\Microsoft\\Internet Explorer\\Main", &pHkeySub);
- LONG res = RegQueryValueEx(pHkeySub, L"StatusBarWeb", NULL, NULL, (BYTE*)&trueth, &truethSize);
+ LONG res = RegQueryValueEx(pHkeySub, L"StatusBarWeb", NULL, NULL, (BYTE*)&truth, &truthSize);
RegCloseKey(pHkey);
if (res != ERROR_SUCCESS)
{
res = RegOpenKey(pHkey, L"Software\\Microsoft\\Internet Explorer\\MINIE", &pHkeySub);
if (res == ERROR_SUCCESS)
{
- LONG res = RegQueryValueEx(pHkeySub, L"ShowStatusBar", NULL, NULL, (BYTE*)&trueth, &truethSize);
+ LONG res = RegQueryValueEx(pHkeySub, L"ShowStatusBar", NULL, NULL, (BYTE*)&truth, &truthSize);
if (res == ERROR_SUCCESS)
{
RegCloseKey(pHkey);
@@ -433,7 +434,7 @@
}
}
DEBUG_GENERAL("IsStatusBarEnabled end");
- return trueth == 1;
+ return truth == 1;
}
void CPluginClass::ShowStatusBar()
@@ -478,12 +479,12 @@
MB_YESNO);
if (res == IDYES)
{
- DWORD trueth = 1;
+ DWORD truth = 1;
regRes = RegOpenKey(pHkey, L"Software\\Microsoft\\Internet Explorer\\MINIE", &pHkeySub);
- regRes = RegSetValueEx(pHkeySub, L"ShowStatusBar", 0, REG_DWORD, (BYTE*)&trueth, sizeof(DWORD));
+ regRes = RegSetValueEx(pHkeySub, L"ShowStatusBar", 0, REG_DWORD, (BYTE*)&truth, sizeof(truth));
regRes = RegCloseKey(pHkeySub);
regRes = RegOpenKey(pHkey, L"Software\\Microsoft\\Internet Explorer\\Main", &pHkeySub);
- regRes = RegSetValueEx(pHkeySub, L"StatusBarWeb", 0, REG_DWORD, (BYTE*)&trueth, sizeof(DWORD));
+ regRes = RegSetValueEx(pHkeySub, L"StatusBarWeb", 0, REG_DWORD, (BYTE*)&truth, sizeof(truth));
regRes = RegCloseKey(pHkeySub);
hr = browser->put_StatusBar(TRUE);
if (FAILED(hr))
@@ -805,7 +806,7 @@
{
WNDCLASSEX wcex;
- wcex.cbSize = sizeof(WNDCLASSEX);
+ wcex.cbSize = sizeof(wcex);
wcex.style = 0;
wcex.lpfnWndProc = (WNDPROC)PaneWindowProc;
wcex.cbClsExtra = 0;
@@ -881,7 +882,7 @@
CPluginClient* client = CPluginClient::GetInstance();
- wchar_t szClassName[MAX_PATH];
+ std::array<wchar_t, MAX_PATH> className;
// Get browser window and url
HWND hBrowserWnd = GetBrowserHWND();
if (!hBrowserWnd)
@@ -899,14 +900,15 @@
HWND uniqueNewTab = NULL;
while (hTabWnd)
{
- memset(szClassName, 0, MAX_PATH);
- GetClassName(hTabWnd, szClassName, MAX_PATH);
+ className[0] = L'\0';
+ // GetClassNameW returns the number of characters without '\0'
+ int classNameLength = GetClassNameW(hTabWnd, className.data(), className.size());
Oleksandr 2014/10/17 07:09:07 In other places of the code we use std::wstring in
- if (wcscmp(szClassName, L"TabWindowClass") == 0 || wcscmp(szClassName,L"Frame Tab") == 0)
+ if (classNameLength && (wcscmp(className.data(), L"TabWindowClass") == 0 || wcscmp(className.data(), L"Frame Tab") == 0))
{
// IE8 support
HWND hTabWnd2 = hTabWnd;
- if (wcscmp(szClassName,L"Frame Tab") == 0)
+ if (wcscmp(className.data(), L"Frame Tab") == 0)
{
hTabWnd2 = ::FindWindowEx(hTabWnd2, NULL, L"TabWindowClass", NULL);
}
@@ -953,10 +955,10 @@
HWND hWnd = ::GetWindow(hBrowserWnd, GW_CHILD);
while (hWnd)
{
- memset(szClassName, 0, MAX_PATH);
- ::GetClassName(hWnd, szClassName, MAX_PATH);
+ className[0] = L'\0';
+ int classNameLength = GetClassNameW(hWnd, className.data(), className.size());
- if (wcscmp(szClassName,L"msctls_statusbar32") == 0)
+ if (classNameLength && wcscmp(className.data(), L"msctls_statusbar32") == 0)
{
hWndStatusBar = hWnd;
break;
@@ -1281,13 +1283,11 @@
Dictionary* dictionary = Dictionary::GetInstance();
- MENUITEMINFOW fmii;
- memset(&fmii, 0, sizeof(MENUITEMINFO));
- fmii.cbSize = sizeof(MENUITEMINFO);
+ MENUITEMINFOW fmii = {};
+ fmii.cbSize = sizeof(fmii);
- MENUITEMINFOW miiSep;
- memset(&miiSep, 0, sizeof(MENUITEMINFO));
- miiSep.cbSize = sizeof(MENUITEMINFO);
+ MENUITEMINFOW miiSep = {};
+ miiSep.cbSize = sizeof(miiSep);
miiSep.fMask = MIIM_TYPE | MIIM_FTYPE;
miiSep.fType = MFT_SEPARATOR;
@@ -1382,8 +1382,7 @@
if (nButton > 0)
{
- TBBUTTON pTBBtn;
- memset(&pTBBtn, 0, sizeof(TBBUTTON));
+ TBBUTTON pTBBtn = {};
if (SendMessage(hWndToolBar, TB_GETBUTTON, nButton, (LPARAM)&pTBBtn))
{
@@ -1805,7 +1804,7 @@
HWND CPluginClass::GetTabHWND() const
{
- wchar_t szClassName[MAX_PATH];
+ std::array<wchar_t, MAX_PATH> className;
// Get browser window and url
HWND hBrowserWnd = GetBrowserHWND();
if (!hBrowserWnd)
@@ -1821,14 +1820,14 @@
HWND hTabWnd = ::GetWindow(hBrowserWnd, GW_CHILD);
while (hTabWnd)
{
- memset(szClassName, 0, MAX_PATH);
- GetClassName(hTabWnd, szClassName, MAX_PATH);
+ className[0] = L'\0';
+ int classNameLength = GetClassNameW(hTabWnd, className.data(), className.size());
- if (wcscmp(szClassName, L"TabWindowClass") == 0 || wcscmp(szClassName, L"Frame Tab") == 0)
+ if (classNameLength && (wcscmp(className.data(), L"TabWindowClass") == 0 || wcscmp(className.data(), L"Frame Tab") == 0))
{
// IE8 support
HWND hTabWnd2 = hTabWnd;
- if (wcscmp(szClassName, L"Frame Tab") == 0)
+ if (wcscmp(className.data(), L"Frame Tab") == 0)
{
hTabWnd2 = ::FindWindowEx(hTabWnd2, NULL, L"TabWindowClass", NULL);
}

Powered by Google App Engine
This is Rietveld