Kill goto, avoid compiler warnings.

svn path=/trunk/; revision=43182
This commit is contained in:
Dmitry Gorbachev 2009-09-27 11:56:16 +00:00
parent d9a760415b
commit 49cd47f946

View file

@ -390,7 +390,10 @@ MsgiKMToUMReply(PMSG KMMsg, PMSG UMMsg, LRESULT *Result)
static BOOL FASTCALL static BOOL FASTCALL
MsgiAnsiToUnicodeMessage(LPMSG UnicodeMsg, LPMSG AnsiMsg) MsgiAnsiToUnicodeMessage(LPMSG UnicodeMsg, LPMSG AnsiMsg)
{ {
UNICODE_STRING UnicodeString;
*UnicodeMsg = *AnsiMsg; *UnicodeMsg = *AnsiMsg;
switch (AnsiMsg->message) switch (AnsiMsg->message)
{ {
case WM_GETTEXT: case WM_GETTEXT:
@ -415,7 +418,9 @@ MsgiAnsiToUnicodeMessage(LPMSG UnicodeMsg, LPMSG AnsiMsg)
case LB_ADDFILE: case LB_ADDFILE:
case EM_REPLACESEL: case EM_REPLACESEL:
{ {
goto ConvertLParamString; RtlCreateUnicodeStringFromAsciiz(&UnicodeString, (LPSTR)AnsiMsg->lParam);
UnicodeMsg->lParam = (LPARAM)UnicodeString.Buffer;
break;
} }
case LB_ADDSTRING: case LB_ADDSTRING:
@ -432,7 +437,8 @@ MsgiAnsiToUnicodeMessage(LPMSG UnicodeMsg, LPMSG AnsiMsg)
if (!(dwStyle & (LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE)) && if (!(dwStyle & (LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE)) &&
(dwStyle & LBS_HASSTRINGS)) (dwStyle & LBS_HASSTRINGS))
{ {
goto ConvertLParamString; RtlCreateUnicodeStringFromAsciiz(&UnicodeString, (LPSTR)AnsiMsg->lParam);
UnicodeMsg->lParam = (LPARAM)UnicodeString.Buffer;
} }
break; break;
} }
@ -447,9 +453,6 @@ MsgiAnsiToUnicodeMessage(LPMSG UnicodeMsg, LPMSG AnsiMsg)
if (!(dwStyle & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE)) && if (!(dwStyle & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE)) &&
(dwStyle & CBS_HASSTRINGS)) (dwStyle & CBS_HASSTRINGS))
{ {
UNICODE_STRING UnicodeString;
ConvertLParamString:
RtlCreateUnicodeStringFromAsciiz(&UnicodeString, (LPSTR)AnsiMsg->lParam); RtlCreateUnicodeStringFromAsciiz(&UnicodeString, (LPSTR)AnsiMsg->lParam);
UnicodeMsg->lParam = (LPARAM)UnicodeString.Buffer; UnicodeMsg->lParam = (LPARAM)UnicodeString.Buffer;
} }
@ -459,13 +462,13 @@ ConvertLParamString:
case WM_NCCREATE: case WM_NCCREATE:
case WM_CREATE: case WM_CREATE:
{ {
UNICODE_STRING UnicodeBuffer;
struct s struct s
{ {
CREATESTRUCTW cs; /* new structure */ CREATESTRUCTW cs; /* new structure */
LPCWSTR lpszName; /* allocated Name */ LPCWSTR lpszName; /* allocated Name */
LPCWSTR lpszClass; /* allocated Class */ LPCWSTR lpszClass; /* allocated Class */
}; };
struct s *xs = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(struct s)); struct s *xs = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(struct s));
if (!xs) if (!xs)
{ {
@ -474,13 +477,13 @@ ConvertLParamString:
xs->cs = *(CREATESTRUCTW *)AnsiMsg->lParam; xs->cs = *(CREATESTRUCTW *)AnsiMsg->lParam;
if (!IS_INTRESOURCE(xs->cs.lpszName)) if (!IS_INTRESOURCE(xs->cs.lpszName))
{ {
RtlCreateUnicodeStringFromAsciiz(&UnicodeBuffer, (LPSTR)xs->cs.lpszName); RtlCreateUnicodeStringFromAsciiz(&UnicodeString, (LPSTR)xs->cs.lpszName);
xs->lpszName = xs->cs.lpszName = UnicodeBuffer.Buffer; xs->lpszName = xs->cs.lpszName = UnicodeString.Buffer;
} }
if (!IS_ATOM(xs->cs.lpszClass)) if (!IS_ATOM(xs->cs.lpszClass))
{ {
RtlCreateUnicodeStringFromAsciiz(&UnicodeBuffer, (LPSTR)xs->cs.lpszClass); RtlCreateUnicodeStringFromAsciiz(&UnicodeString, (LPSTR)xs->cs.lpszClass);
xs->lpszClass = xs->cs.lpszClass = UnicodeBuffer.Buffer; xs->lpszClass = xs->cs.lpszClass = UnicodeString.Buffer;
} }
UnicodeMsg->lParam = (LPARAM)xs; UnicodeMsg->lParam = (LPARAM)xs;
break; break;
@ -488,7 +491,6 @@ ConvertLParamString:
case WM_MDICREATE: case WM_MDICREATE:
{ {
UNICODE_STRING UnicodeBuffer;
MDICREATESTRUCTW *cs = MDICREATESTRUCTW *cs =
(MDICREATESTRUCTW *)HeapAlloc(GetProcessHeap(), 0, sizeof(*cs)); (MDICREATESTRUCTW *)HeapAlloc(GetProcessHeap(), 0, sizeof(*cs));
@ -501,12 +503,12 @@ ConvertLParamString:
if (!IS_ATOM(cs->szClass)) if (!IS_ATOM(cs->szClass))
{ {
RtlCreateUnicodeStringFromAsciiz(&UnicodeBuffer, (LPSTR)cs->szClass); RtlCreateUnicodeStringFromAsciiz(&UnicodeString, (LPSTR)cs->szClass);
cs->szClass = UnicodeBuffer.Buffer; cs->szClass = UnicodeString.Buffer;
} }
RtlCreateUnicodeStringFromAsciiz(&UnicodeBuffer, (LPSTR)cs->szTitle); RtlCreateUnicodeStringFromAsciiz(&UnicodeString, (LPSTR)cs->szTitle);
cs->szTitle = UnicodeBuffer.Buffer; cs->szTitle = UnicodeString.Buffer;
UnicodeMsg->lParam = (LPARAM)cs; UnicodeMsg->lParam = (LPARAM)cs;
break; break;
@ -520,6 +522,8 @@ ConvertLParamString:
static BOOL FASTCALL static BOOL FASTCALL
MsgiAnsiToUnicodeCleanup(LPMSG UnicodeMsg, LPMSG AnsiMsg) MsgiAnsiToUnicodeCleanup(LPMSG UnicodeMsg, LPMSG AnsiMsg)
{ {
UNICODE_STRING UnicodeString;
switch (AnsiMsg->message) switch (AnsiMsg->message)
{ {
case WM_GETTEXT: case WM_GETTEXT:
@ -537,7 +541,9 @@ MsgiAnsiToUnicodeCleanup(LPMSG UnicodeMsg, LPMSG AnsiMsg)
case LB_ADDFILE: case LB_ADDFILE:
case EM_REPLACESEL: case EM_REPLACESEL:
{ {
goto FreeLParamString; RtlInitUnicodeString(&UnicodeString, (PCWSTR)UnicodeMsg->lParam);
RtlFreeUnicodeString(&UnicodeString);
break;
} }
case LB_ADDSTRING: case LB_ADDSTRING:
@ -554,7 +560,8 @@ MsgiAnsiToUnicodeCleanup(LPMSG UnicodeMsg, LPMSG AnsiMsg)
if (!(dwStyle & (LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE)) && if (!(dwStyle & (LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE)) &&
(dwStyle & LBS_HASSTRINGS)) (dwStyle & LBS_HASSTRINGS))
{ {
goto FreeLParamString; RtlInitUnicodeString(&UnicodeString, (PCWSTR)UnicodeMsg->lParam);
RtlFreeUnicodeString(&UnicodeString);
} }
break; break;
} }
@ -569,26 +576,22 @@ MsgiAnsiToUnicodeCleanup(LPMSG UnicodeMsg, LPMSG AnsiMsg)
if (!(dwStyle & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE)) && if (!(dwStyle & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE)) &&
(dwStyle & CBS_HASSTRINGS)) (dwStyle & CBS_HASSTRINGS))
{ {
UNICODE_STRING UnicodeString;
FreeLParamString:
RtlInitUnicodeString(&UnicodeString, (PCWSTR)UnicodeMsg->lParam); RtlInitUnicodeString(&UnicodeString, (PCWSTR)UnicodeMsg->lParam);
RtlFreeUnicodeString(&UnicodeString); RtlFreeUnicodeString(&UnicodeString);
} }
break; break;
} }
case WM_NCCREATE: case WM_NCCREATE:
case WM_CREATE: case WM_CREATE:
{ {
UNICODE_STRING UnicodeString;
struct s struct s
{ {
CREATESTRUCTW cs; /* new structure */ CREATESTRUCTW cs; /* new structure */
LPWSTR lpszName; /* allocated Name */ LPWSTR lpszName; /* allocated Name */
LPWSTR lpszClass; /* allocated Class */ LPWSTR lpszClass; /* allocated Class */
}; };
struct s *xs = (struct s *)UnicodeMsg->lParam; struct s *xs = (struct s *)UnicodeMsg->lParam;
if (xs->lpszName) if (xs->lpszName)
{ {
@ -601,12 +604,11 @@ FreeLParamString:
RtlFreeUnicodeString(&UnicodeString); RtlFreeUnicodeString(&UnicodeString);
} }
HeapFree(GetProcessHeap(), 0, xs); HeapFree(GetProcessHeap(), 0, xs);
break;
} }
break;
case WM_MDICREATE: case WM_MDICREATE:
{ {
UNICODE_STRING UnicodeString;
MDICREATESTRUCTW *cs = (MDICREATESTRUCTW *)UnicodeMsg->lParam; MDICREATESTRUCTW *cs = (MDICREATESTRUCTW *)UnicodeMsg->lParam;
RtlInitUnicodeString(&UnicodeString, (PCWSTR)cs->szTitle); RtlInitUnicodeString(&UnicodeString, (PCWSTR)cs->szTitle);
RtlFreeUnicodeString(&UnicodeString); RtlFreeUnicodeString(&UnicodeString);
@ -616,9 +618,10 @@ FreeLParamString:
RtlFreeUnicodeString(&UnicodeString); RtlFreeUnicodeString(&UnicodeString);
} }
HeapFree(GetProcessHeap(), 0, cs); HeapFree(GetProcessHeap(), 0, cs);
break;
} }
break;
} }
return(TRUE); return(TRUE);
} }
@ -652,6 +655,9 @@ MsgiAnsiToUnicodeReply(LPMSG UnicodeMsg, LPMSG AnsiMsg, LRESULT *Result)
static BOOL FASTCALL static BOOL FASTCALL
MsgiUnicodeToAnsiMessage(LPMSG AnsiMsg, LPMSG UnicodeMsg) MsgiUnicodeToAnsiMessage(LPMSG AnsiMsg, LPMSG UnicodeMsg)
{ {
ANSI_STRING AnsiString;
UNICODE_STRING UnicodeString;
*AnsiMsg = *UnicodeMsg; *AnsiMsg = *UnicodeMsg;
switch(UnicodeMsg->message) switch(UnicodeMsg->message)
@ -661,8 +667,6 @@ MsgiUnicodeToAnsiMessage(LPMSG AnsiMsg, LPMSG UnicodeMsg)
{ {
CREATESTRUCTA* CsA; CREATESTRUCTA* CsA;
CREATESTRUCTW* CsW; CREATESTRUCTW* CsW;
UNICODE_STRING UString;
ANSI_STRING AString;
NTSTATUS Status; NTSTATUS Status;
CsW = (CREATESTRUCTW*)(UnicodeMsg->lParam); CsW = (CREATESTRUCTW*)(UnicodeMsg->lParam);
@ -673,26 +677,26 @@ MsgiUnicodeToAnsiMessage(LPMSG AnsiMsg, LPMSG UnicodeMsg)
} }
memcpy(CsA, CsW, sizeof(CREATESTRUCTW)); memcpy(CsA, CsW, sizeof(CREATESTRUCTW));
RtlInitUnicodeString(&UString, CsW->lpszName); RtlInitUnicodeString(&UnicodeString, CsW->lpszName);
Status = RtlUnicodeStringToAnsiString(&AString, &UString, TRUE); Status = RtlUnicodeStringToAnsiString(&AnsiString, &UnicodeString, TRUE);
if (! NT_SUCCESS(Status)) if (! NT_SUCCESS(Status))
{ {
RtlFreeHeap(GetProcessHeap(), 0, CsA); RtlFreeHeap(GetProcessHeap(), 0, CsA);
return FALSE; return FALSE;
} }
CsA->lpszName = AString.Buffer; CsA->lpszName = AnsiString.Buffer;
if (HIWORD((ULONG)CsW->lpszClass) != 0) if (HIWORD((ULONG)CsW->lpszClass) != 0)
{ {
RtlInitUnicodeString(&UString, CsW->lpszClass); RtlInitUnicodeString(&UnicodeString, CsW->lpszClass);
Status = RtlUnicodeStringToAnsiString(&AString, &UString, TRUE); Status = RtlUnicodeStringToAnsiString(&AnsiString, &UnicodeString, TRUE);
if (! NT_SUCCESS(Status)) if (! NT_SUCCESS(Status))
{ {
RtlInitAnsiString(&AString, CsA->lpszName); RtlInitAnsiString(&AnsiString, CsA->lpszName);
RtlFreeAnsiString(&AString); RtlFreeAnsiString(&AnsiString);
RtlFreeHeap(GetProcessHeap(), 0, CsA); RtlFreeHeap(GetProcessHeap(), 0, CsA);
return FALSE; return FALSE;
} }
CsA->lpszClass = AString.Buffer; CsA->lpszClass = AnsiString.Buffer;
} }
AnsiMsg->lParam = (LPARAM)CsA; AnsiMsg->lParam = (LPARAM)CsA;
break; break;
@ -713,8 +717,16 @@ MsgiUnicodeToAnsiMessage(LPMSG AnsiMsg, LPMSG UnicodeMsg)
case LB_DIR: case LB_DIR:
case LB_ADDFILE: case LB_ADDFILE:
{ {
goto ConvertLParamString; RtlInitUnicodeString(&UnicodeString, (PWSTR) UnicodeMsg->lParam);
} if (! NT_SUCCESS(RtlUnicodeStringToAnsiString(&AnsiString,
&UnicodeString,
TRUE)))
{
return FALSE;
}
AnsiMsg->lParam = (LPARAM) AnsiString.Buffer;
break;
}
case LB_ADDSTRING: case LB_ADDSTRING:
case LB_ADDSTRING_LOWER: case LB_ADDSTRING_LOWER:
@ -730,7 +742,14 @@ MsgiUnicodeToAnsiMessage(LPMSG AnsiMsg, LPMSG UnicodeMsg)
if (!(dwStyle & (LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE)) && if (!(dwStyle & (LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE)) &&
(dwStyle & LBS_HASSTRINGS)) (dwStyle & LBS_HASSTRINGS))
{ {
goto ConvertLParamString; RtlInitUnicodeString(&UnicodeString, (PWSTR) UnicodeMsg->lParam);
if (! NT_SUCCESS(RtlUnicodeStringToAnsiString(&AnsiString,
&UnicodeString,
TRUE)))
{
return FALSE;
}
AnsiMsg->lParam = (LPARAM) AnsiString.Buffer;
} }
break; break;
} }
@ -745,10 +764,6 @@ MsgiUnicodeToAnsiMessage(LPMSG AnsiMsg, LPMSG UnicodeMsg)
if (!(dwStyle & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE)) && if (!(dwStyle & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE)) &&
(dwStyle & CBS_HASSTRINGS)) (dwStyle & CBS_HASSTRINGS))
{ {
ANSI_STRING AnsiString;
UNICODE_STRING UnicodeString;
ConvertLParamString:
RtlInitUnicodeString(&UnicodeString, (PWSTR) UnicodeMsg->lParam); RtlInitUnicodeString(&UnicodeString, (PWSTR) UnicodeMsg->lParam);
if (! NT_SUCCESS(RtlUnicodeStringToAnsiString(&AnsiString, if (! NT_SUCCESS(RtlUnicodeStringToAnsiString(&AnsiString,
&UnicodeString, &UnicodeString,
@ -763,8 +778,6 @@ ConvertLParamString:
case WM_MDICREATE: case WM_MDICREATE:
{ {
ANSI_STRING AnsiBuffer;
UNICODE_STRING UnicodeString;
MDICREATESTRUCTA *cs = MDICREATESTRUCTA *cs =
(MDICREATESTRUCTA *)HeapAlloc(GetProcessHeap(), 0, sizeof(*cs)); (MDICREATESTRUCTA *)HeapAlloc(GetProcessHeap(), 0, sizeof(*cs));
@ -778,28 +791,28 @@ ConvertLParamString:
if (!IS_ATOM(cs->szClass)) if (!IS_ATOM(cs->szClass))
{ {
RtlInitUnicodeString(&UnicodeString, (LPCWSTR)cs->szClass); RtlInitUnicodeString(&UnicodeString, (LPCWSTR)cs->szClass);
if (! NT_SUCCESS(RtlUnicodeStringToAnsiString(&AnsiBuffer, if (! NT_SUCCESS(RtlUnicodeStringToAnsiString(&AnsiString,
&UnicodeString, &UnicodeString,
TRUE))) TRUE)))
{ {
return FALSE; return FALSE;
} }
cs->szClass = AnsiBuffer.Buffer; cs->szClass = AnsiString.Buffer;
} }
RtlInitUnicodeString(&UnicodeString, (LPCWSTR)cs->szTitle); RtlInitUnicodeString(&UnicodeString, (LPCWSTR)cs->szTitle);
if (! NT_SUCCESS(RtlUnicodeStringToAnsiString(&AnsiBuffer, if (! NT_SUCCESS(RtlUnicodeStringToAnsiString(&AnsiString,
&UnicodeString, &UnicodeString,
TRUE))) TRUE)))
{ {
if (!IS_ATOM(cs->szClass)) if (!IS_ATOM(cs->szClass))
{ {
RtlInitAnsiString(&AnsiBuffer, cs->szClass); RtlInitAnsiString(&AnsiString, cs->szClass);
RtlFreeAnsiString(&AnsiBuffer); RtlFreeAnsiString(&AnsiString);
} }
return FALSE; return FALSE;
} }
cs->szTitle = AnsiBuffer.Buffer; cs->szTitle = AnsiString.Buffer;
AnsiMsg->lParam = (LPARAM)cs; AnsiMsg->lParam = (LPARAM)cs;
break; break;
@ -813,6 +826,8 @@ ConvertLParamString:
static BOOL FASTCALL static BOOL FASTCALL
MsgiUnicodeToAnsiCleanup(LPMSG AnsiMsg, LPMSG UnicodeMsg) MsgiUnicodeToAnsiCleanup(LPMSG AnsiMsg, LPMSG UnicodeMsg)
{ {
ANSI_STRING AnsiString;
switch(UnicodeMsg->message) switch(UnicodeMsg->message)
{ {
case WM_GETTEXT: case WM_GETTEXT:
@ -822,21 +837,22 @@ MsgiUnicodeToAnsiCleanup(LPMSG AnsiMsg, LPMSG UnicodeMsg)
} }
case WM_SETTEXT: case WM_SETTEXT:
{ {
goto FreeLParamString; RtlInitAnsiString(&AnsiString, (PSTR) AnsiMsg->lParam);
RtlFreeAnsiString(&AnsiString);
break;
} }
case WM_CREATE: case WM_CREATE:
case WM_NCCREATE: case WM_NCCREATE:
{ {
CREATESTRUCTA* Cs; CREATESTRUCTA* Cs;
ANSI_STRING AString;
Cs = (CREATESTRUCTA*) AnsiMsg->lParam; Cs = (CREATESTRUCTA*) AnsiMsg->lParam;
RtlInitAnsiString(&AString, Cs->lpszName); RtlInitAnsiString(&AnsiString, Cs->lpszName);
RtlFreeAnsiString(&AString); RtlFreeAnsiString(&AnsiString);
if (HIWORD((ULONG)Cs->lpszClass) != 0) if (HIWORD((ULONG)Cs->lpszClass) != 0)
{ {
RtlInitAnsiString(&AString, Cs->lpszClass); RtlInitAnsiString(&AnsiString, Cs->lpszClass);
RtlFreeAnsiString(&AString); RtlFreeAnsiString(&AnsiString);
} }
RtlFreeHeap(GetProcessHeap(), 0, Cs); RtlFreeHeap(GetProcessHeap(), 0, Cs);
break; break;
@ -856,7 +872,8 @@ MsgiUnicodeToAnsiCleanup(LPMSG AnsiMsg, LPMSG UnicodeMsg)
if (!(dwStyle & (LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE)) && if (!(dwStyle & (LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE)) &&
(dwStyle & LBS_HASSTRINGS)) (dwStyle & LBS_HASSTRINGS))
{ {
goto FreeLParamString; RtlInitAnsiString(&AnsiString, (PSTR) AnsiMsg->lParam);
RtlFreeAnsiString(&AnsiString);
} }
break; break;
} }
@ -871,18 +888,14 @@ MsgiUnicodeToAnsiCleanup(LPMSG AnsiMsg, LPMSG UnicodeMsg)
if (!(dwStyle & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE)) && if (!(dwStyle & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE)) &&
(dwStyle & CBS_HASSTRINGS)) (dwStyle & CBS_HASSTRINGS))
{ {
ANSI_STRING AString; RtlInitAnsiString(&AnsiString, (PSTR) AnsiMsg->lParam);
RtlFreeAnsiString(&AnsiString);
FreeLParamString:
RtlInitAnsiString(&AString, (PSTR) AnsiMsg->lParam);
RtlFreeAnsiString(&AString);
} }
break; break;
} }
case WM_MDICREATE: case WM_MDICREATE:
{ {
ANSI_STRING AnsiString;
MDICREATESTRUCTA *cs = (MDICREATESTRUCTA *)AnsiMsg->lParam; MDICREATESTRUCTA *cs = (MDICREATESTRUCTA *)AnsiMsg->lParam;
RtlInitAnsiString(&AnsiString, (PCSTR)cs->szTitle); RtlInitAnsiString(&AnsiString, (PCSTR)cs->szTitle);
RtlFreeAnsiString(&AnsiString); RtlFreeAnsiString(&AnsiString);