[ros-dev] [ros-diffs] [pschweitzer] 50616: [RTL] Minor code changes to RTL (one would call them "optimisation"). Added some missing paged code. Plus added useful asserts (used to catch r50615 bug!)
Timo Kreuzer
timo.kreuzer at web.de
Tue Feb 8 09:52:09 UTC 2011
You wrote it was an optimization, but it rather looks like a functional
change ("+ sizeof(WCHAR)"). is that intended?
wdm:8428
#define RtlAnsiStringToUnicodeSize(String) ( \
NLS_MB_CODE_PAGE_TAG ? \
RtlxAnsiStringToUnicodeSize(String) : \
((String)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
)
wdm:8916
#define RtlUnicodeStringToAnsiSize(String) ( \
NLS_MB_CODE_PAGE_TAG ? \
RtlxUnicodeStringToAnsiSize(String) : \
((String)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
)
Am 08.02.2011 00:23, schrieb pschweitzer at svn.reactos.org:
> Author: pschweitzer
> Date: Mon Feb 7 23:23:33 2011
> New Revision: 50616
>
> URL: http://svn.reactos.org/svn/reactos?rev=50616&view=rev
> Log:
> [RTL]
> Minor code changes to RTL (one would call them "optimisation"). Added some missing paged code.
> Plus added useful asserts (used to catch r50615 bug!)
>
...
> - Length = RtlAnsiStringToUnicodeSize(AnsiSource);
> + if (NlsMbCodePageTag == FALSE)
> + {
> + Length = AnsiSource->Length * 2 + sizeof(WCHAR);
> + }
> + else
> + {
> + Length = RtlxAnsiStringToUnicodeSize(AnsiSource);
> + }
...
>
> - Length = RtlUnicodeStringToAnsiSize(UniSource);
> + ASSERT(!(UniSource->Length& 1));
> +
> + if (NlsMbCodePageTag == FALSE)
> + {
> + Length = (UniSource->Length + sizeof(WCHAR)) / sizeof(WCHAR);
> + }
> + else
> + {
> + Length = RtlxUnicodeStringToAnsiSize(UniSource);
> + }
> if (Length> MAXUSHORT) return STATUS_INVALID_PARAMETER_2;
More information about the Ros-dev
mailing list