Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
abaac300
Commit
abaac300
authored
May 15, 2008
by
Michael Karcher
Committed by
Alexandre Julliard
May 19, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oleaut32: Cache localised number chars.
parent
b65c1d47
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
0 deletions
+21
-0
variant.c
dlls/oleaut32/variant.c
+21
-0
No files found.
dlls/oleaut32/variant.c
View file @
abaac300
...
...
@@ -1468,9 +1468,25 @@ HRESULT WINAPI VarUdateFromDate(DATE dateIn, ULONG dwFlags, UDATE *lpUdate)
static
void
VARIANT_GetLocalisedNumberChars
(
VARIANT_NUMBER_CHARS
*
lpChars
,
LCID
lcid
,
DWORD
dwFlags
)
{
static
const
VARIANT_NUMBER_CHARS
defaultChars
=
{
'-'
,
'+'
,
'.'
,
','
,
'$'
,
0
,
'.'
,
','
};
static
CRITICAL_SECTION
csLastChars
=
{
NULL
,
-
1
,
0
,
0
,
0
,
0
};
static
VARIANT_NUMBER_CHARS
lastChars
;
static
LCID
lastLcid
=
-
1
;
static
DWORD
lastFlags
=
0
;
LCTYPE
lctype
=
dwFlags
&
LOCALE_NOUSEROVERRIDE
;
WCHAR
buff
[
4
];
/* To make caching thread-safe, a critical section is needed */
EnterCriticalSection
(
&
csLastChars
);
/* Asking for default locale entries is very expensive: It is a registry
server call. So cache one locally, as Microsoft does it too */
if
(
lcid
==
lastLcid
&&
dwFlags
==
lastFlags
)
{
memcpy
(
lpChars
,
&
lastChars
,
sizeof
(
defaultChars
));
LeaveCriticalSection
(
&
csLastChars
);
return
;
}
memcpy
(
lpChars
,
&
defaultChars
,
sizeof
(
defaultChars
));
GET_NUMBER_TEXT
(
LOCALE_SNEGATIVESIGN
,
cNegativeSymbol
);
GET_NUMBER_TEXT
(
LOCALE_SPOSITIVESIGN
,
cPositiveSymbol
);
...
...
@@ -1490,6 +1506,11 @@ static void VARIANT_GetLocalisedNumberChars(VARIANT_NUMBER_CHARS *lpChars, LCID
}
TRACE
(
"lcid 0x%x, cCurrencyLocal =%d,%d '%c','%c'
\n
"
,
lcid
,
lpChars
->
cCurrencyLocal
,
lpChars
->
cCurrencyLocal2
,
lpChars
->
cCurrencyLocal
,
lpChars
->
cCurrencyLocal2
);
memcpy
(
&
lastChars
,
lpChars
,
sizeof
(
defaultChars
));
lastLcid
=
lcid
;
lastFlags
=
dwFlags
;
LeaveCriticalSection
(
&
csLastChars
);
}
/* Number Parsing States */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment