- Use DDK macros to speed up size calculations on single-byte codepages.

svn path=/trunk/; revision=17700
This commit is contained in:
Alex Ionescu 2005-09-06 17:33:56 +00:00
parent a2af287dd8
commit 31a759e85c
3 changed files with 60 additions and 72 deletions

View file

@ -764,12 +764,18 @@ RtlUlonglongByteSwap(IN ULONGLONG Source);
/*
* Unicode->Ansi String Functions
*/
/* FIXME: Use macro */
#undef RtlUnicodeStringToAnsiSize
NTSYSAPI
ULONG
NTAPI
RtlUnicodeStringToAnsiSize(IN PUNICODE_STRING UnicodeString);
RtlxUnicodeStringToAnsiSize(IN PCUNICODE_STRING UnicodeString);
#ifdef NTOS_MODE_USER
#define RtlUnicodeStringToAnsiSize(STRING) ( \
NLS_MB_CODE_PAGE_TAG ? \
RtlxUnicodeStringToAnsiSize(STRING) : \
((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
)
#endif
NTSYSAPI
NTSTATUS
@ -821,12 +827,21 @@ RtlUpcaseUnicodeToOemN(
ULONG UnicodeSize
);
/* FIXME: Use macro */
#undef RtlUnicodeStringToOemSize
NTSYSAPI
ULONG
NTAPI
RtlUnicodeStringToOemSize(IN PUNICODE_STRING UnicodeString);
RtlxUnicodeStringToOemSize(IN PCUNICODE_STRING UnicodeString);
#ifdef NTOS_MODE_USER
#define RtlUnicodeStringToOemSize(STRING) ( \
NLS_MB_OEM_CODE_PAGE_TAG ? \
RtlxUnicodeStringToOemSize(STRING) : \
((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
)
#define RtlUnicodeStringToCountedOemSize(STRING) ( \
(ULONG)(RtlUnicodeStringToOemSize(STRING) - sizeof(UNICODE_NULL)) \
)
#endif
NTSYSAPI
NTSTATUS
@ -873,15 +888,24 @@ RtlUnicodeToMultiByteSize(
ULONG UnicodeSize
);
/*
* OEM to Unicode Functions
*/
/* FIXME: Use macro */
#undef RtlOemStringToUnicodeSize
NTSYSAPI
ULONG
NTAPI
RtlOemStringToUnicodeSize(POEM_STRING AnsiString);
RtlxOemStringToUnicodeSize(IN PCOEM_STRING OemString);
/*
* OEM to Unicode Functions
*/
#ifdef NTOS_MODE_USER
#define RtlOemStringToUnicodeSize(STRING) ( \
NLS_MB_OEM_CODE_PAGE_TAG ? \
RtlxOemStringToUnicodeSize(STRING) : \
((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
)
#define RtlOemStringToCountedUnicodeSize(STRING) ( \
(ULONG)(RtlOemStringToUnicodeSize(STRING) - sizeof(UNICODE_NULL)) \
)
#endif
NTSYSAPI
NTSTATUS
@ -915,14 +939,13 @@ RtlAnsiStringToUnicodeString(
BOOLEAN AllocateDestinationString
);
/* FIXME: Use macro */
#undef RtlAnsiStringToUnicodeSize
NTSYSAPI
ULONG
NTAPI
RtlAnsiStringToUnicodeSize(
PANSI_STRING AnsiString
);
#ifdef NTOS_MODE_USER
#define RtlAnsiStringToUnicodeSize(STRING) ( \
NLS_MB_CODE_PAGE_TAG ? \
RtlxAnsiStringToUnicodeSize(STRING) : \
((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
)
#endif
NTSYSAPI
BOOLEAN

View file

@ -66,7 +66,7 @@ RtlAnsiCharToUnicodeChar (IN CHAR AnsiChar)
*/
ULONG
STDCALL
RtlxAnsiStringToUnicodeSize(IN PANSI_STRING AnsiString)
RtlxAnsiStringToUnicodeSize(IN PCANSI_STRING AnsiString)
{
ULONG Size;
@ -884,7 +884,7 @@ RtlUnicodeStringToInteger(
ULONG
STDCALL
RtlxUnicodeStringToOemSize(
IN PUNICODE_STRING UnicodeString)
IN PCUNICODE_STRING UnicodeString)
{
ULONG Size;
@ -1830,7 +1830,7 @@ RtlUpcaseUnicodeStringToOemString (
*/
ULONG
STDCALL
RtlxOemStringToUnicodeSize(IN POEM_STRING OemString)
RtlxOemStringToUnicodeSize(IN PCOEM_STRING OemString)
{
ULONG Size;
@ -1894,7 +1894,7 @@ RtlStringFromGUID (IN REFGUID Guid,
ULONG
STDCALL
RtlxUnicodeStringToAnsiSize(
IN PUNICODE_STRING UnicodeString)
IN PCUNICODE_STRING UnicodeString)
{
ULONG Size;
@ -2256,47 +2256,6 @@ RtlUpperString(PSTRING DestinationString,
DestinationString->Length = SourceString->Length;
}
/*
* @implemented
*/
ULONG STDCALL
RtlAnsiStringToUnicodeSize(IN PANSI_STRING AnsiString)
{
return RtlxAnsiStringToUnicodeSize(AnsiString);
}
/*
* @implemented
*/
ULONG STDCALL
RtlOemStringToUnicodeSize(IN POEM_STRING OemString)
{
return RtlxOemStringToUnicodeSize(OemString);
}
/*
* @implemented
*/
ULONG STDCALL
RtlUnicodeStringToAnsiSize(IN PUNICODE_STRING UnicodeString)
{
return RtlxUnicodeStringToAnsiSize(UnicodeString);
}
/*
* @implemented
*/
ULONG STDCALL
RtlUnicodeStringToOemSize(IN PUNICODE_STRING UnicodeString)
{
return RtlxUnicodeStringToOemSize(UnicodeString);
}
/*
* @implemented
*

View file

@ -5099,8 +5099,14 @@ InterlockedPushEntrySList(
NTOSAPI
ULONG
DDKAPI
RtlAnsiStringToUnicodeSize(
IN PANSI_STRING AnsiString);
RtlxAnsiStringToUnicodeSize(
IN PCANSI_STRING AnsiString);
#define RtlAnsiStringToUnicodeSize(STRING) ( \
NLS_MB_CODE_PAGE_TAG ? \
RtlxAnsiStringToUnicodeSize(STRING) : \
((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \
)
NTOSAPI
NTSTATUS
@ -5720,11 +5726,11 @@ DDKFASTAPI
RtlUlonglongByteSwap(
IN ULONGLONG Source);
NTOSAPI
ULONG
DDKAPI
RtlUnicodeStringToAnsiSize(
IN PUNICODE_STRING UnicodeString);
#define RtlUnicodeStringToAnsiSize(STRING) ( \
NLS_MB_CODE_PAGE_TAG ? \
RtlxUnicodeStringToAnsiSize(STRING) : \
((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
)
NTOSAPI
NTSTATUS