Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(25)

Side by Side Diff: patches/cmemory.patch

Issue 2442923002: ICU update to 58 part 2 (Closed)
Patch Set: apply more patches and updates; almost ready to roll Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « patches/cjdict.patch ('k') | patches/data.build.patch » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 diff --git a/source/common/cmemory.c b/source/common/cmemory.c
2 index cd3ccac..42885f2 100644
3 --- a/source/common/cmemory.c
4 +++ b/source/common/cmemory.c
5 @@ -1,7 +1,7 @@
6 /*
7 ******************************************************************************
8 *
9 -* Copyright (C) 2002-2012, International Business Machines
10 +* Copyright (C) 2002-2015, International Business Machines
11 * Corporation and others. All Rights Reserved.
12 *
13 ******************************************************************************
14 @@ -33,10 +33,6 @@ static UMemAllocFn *pAlloc;
15 static UMemReallocFn *pRealloc;
16 static UMemFreeFn *pFree;
17
18 -/* Flag indicating whether any heap allocations have happened.
19 - * Used to prevent changing out the heap functions after allocations have bee n made */
20 -static UBool gHeapInUse;
21 -
22 #if U_DEBUG && defined(UPRV_MALLOC_COUNT)
23 #include <stdio.h>
24 static int n=0;
25 @@ -78,7 +74,6 @@ uprv_malloc(size_t s) {
26 #endif
27 #endif
28 if (s > 0) {
29 - gHeapInUse = TRUE;
30 if (pAlloc) {
31 return (*pAlloc)(pContext, s);
32 } else {
33 @@ -105,7 +100,6 @@ uprv_realloc(void * buffer, size_t size) {
34 }
35 return (void *)zeroMem;
36 } else {
37 - gHeapInUse = TRUE;
38 if (pRealloc) {
39 return (*pRealloc)(pContext, buffer, size);
40 } else {
41 @@ -150,10 +144,6 @@ u_setMemoryFunctions(const void *context, UMemAllocFn *a, U MemReallocFn *r, UMem
42 *status = U_ILLEGAL_ARGUMENT_ERROR;
43 return;
44 }
45 - if (gHeapInUse) {
46 - *status = U_INVALID_STATE_ERROR;
47 - return;
48 - }
49 pContext = context;
50 pAlloc = a;
51 pRealloc = r;
52 @@ -166,18 +156,5 @@ U_CFUNC UBool cmemory_cleanup(void) {
53 pAlloc = NULL;
54 pRealloc = NULL;
55 pFree = NULL;
56 - gHeapInUse = FALSE;
57 return TRUE;
58 }
59 -
60 -
61 -/*
62 - * gHeapInUse
63 - * Return True if ICU has allocated any memory.
64 - * Used by u_SetMutexFunctions() and similar to verify that ICU has not
65 - * been used, that it is in a pristine initial state.
66 - */
67 -U_CFUNC UBool cmemory_inUse() {
68 - return gHeapInUse;
69 -}
70 -
71 diff --git a/source/common/cmemory.h b/source/common/cmemory.h
72 index ed29b63..d182b5a 100644
73 --- a/source/common/cmemory.h
74 +++ b/source/common/cmemory.h
75 @@ -1,7 +1,7 @@
76 /*
77 ******************************************************************************
78 *
79 -* Copyright (C) 1997-2014, International Business Machines
80 +* Copyright (C) 1997-2015, International Business Machines
81 * Corporation and others. All Rights Reserved.
82 *
83 ******************************************************************************
84 @@ -116,13 +116,6 @@ typedef union {
85 #define U_ALIGNMENT_OFFSET_UP(ptr) (sizeof(UAlignedMemory) - U_ALIGNMENT_OFFSET (ptr))
86
87 /**
88 - * Indicate whether the ICU allocation functions have been used.
89 - * This is used to determine whether ICU is in an initial, unused state.
90 - */
91 -U_CFUNC UBool
92 -cmemory_inUse(void);
93 -
94 -/**
95 * Heap clean up function, called from u_cleanup()
96 * Clears any user heap functions from u_setMemoryFunctions()
97 * Does NOT deallocate any remaining allocated memory.
98 diff --git a/source/common/icuplug.cpp b/source/common/icuplug.cpp
99 index 135eb92..2764ea5 100644
100 --- a/source/common/icuplug.cpp
101 +++ b/source/common/icuplug.cpp
102 @@ -1,7 +1,7 @@
103 /*
104 ******************************************************************************
105 *
106 -* Copyright (C) 2009-2014, International Business Machines
107 +* Copyright (C) 2009-2015, International Business Machines
108 * Corporation and others. All Rights Reserved.
109 *
110 ******************************************************************************
111 @@ -618,12 +618,10 @@ uplug_loadPlugFromLibrary(const char *libName, const char *sym, const char *conf
112
113 #endif
114
115 +static UPlugLevel gCurrentLevel = UPLUG_LEVEL_LOW;
116 +
117 U_CAPI UPlugLevel U_EXPORT2 uplug_getCurrentLevel() {
118 - if(cmemory_inUse()) {
119 - return UPLUG_LEVEL_HIGH;
120 - } else {
121 - return UPLUG_LEVEL_LOW;
122 - }
123 + return gCurrentLevel;
124 }
125
126 static UBool U_CALLCONV uplug_cleanup(void)
127 @@ -639,6 +637,7 @@ static UBool U_CALLCONV uplug_cleanup(void)
128 uplug_doUnloadPlug(pluginToRemove, &subStatus);
129 }
130 /* close other held libs? */
131 + gCurrentLevel = UPLUG_LEVEL_LOW;
132 return TRUE;
133 }
134
135 @@ -710,6 +709,8 @@ uplug_getPluginFile() {
136 }
137
138
139 +// uplug_init() is called first thing from u_init().
140 +
141 U_CAPI void U_EXPORT2
142 uplug_init(UErrorCode *status) {
143 #if !U_ENABLE_DYLOAD
144 @@ -866,5 +867,6 @@ uplug_init(UErrorCode *status) {
145 }
146 uplug_loadWaitingPlugs(status);
147 #endif /* U_ENABLE_DYLOAD */
148 + gCurrentLevel = UPLUG_LEVEL_HIGH;
149 ucln_registerCleanup(UCLN_UPLUG, uplug_cleanup);
150 }
151 diff --git a/source/test/cintltst/hpmufn.c b/source/test/cintltst/hpmufn.c
152 index a0e2aa1..edb7a98 100644
153 --- a/source/test/cintltst/hpmufn.c
154 +++ b/source/test/cintltst/hpmufn.c
155 @@ -1,6 +1,6 @@
156 /********************************************************************
157 * COPYRIGHT:
158 - * Copyright (c) 2003-2013, International Business Machines Corporation and
159 + * Copyright (c) 2003-2015, International Business Machines Corporation and
160 * others. All Rights Reserved.
161 ********************************************************************/
162 /*
163 @@ -129,10 +129,6 @@ static void TestHeapFunctions() {
164 * probably because some earlier test accidently left something open. */
165 ctest_resetICU();
166
167 - /* Can not set memory functions if ICU is already initialized */
168 - u_setMemoryFunctions(&gContext, myMemAlloc, myMemRealloc, myMemFree, &statu s);
169 - TEST_STATUS(status, U_INVALID_STATE_ERROR);
170 -
171 /* Un-initialize ICU */
172 u_cleanup();
173
174 @@ -155,13 +151,11 @@ static void TestHeapFunctions() {
175 TEST_STATUS(status, U_ZERO_ERROR);
176
177
178 - /* After reinitializing ICU, we should not be able to set the memory funcs again. */
179 + /* After reinitializing ICU, we can not set the memory funcs again. */
180 status = U_ZERO_ERROR;
181 u_setDataDirectory(icuDataDir);
182 u_init(&status);
183 TEST_STATUS(status, U_ZERO_ERROR);
184 - u_setMemoryFunctions(NULL, myMemAlloc, myMemRealloc, myMemFree, &status);
185 - TEST_STATUS(status, U_INVALID_STATE_ERROR);
186
187 /* Doing ICU operations should cause allocations to come through our test h eap */
188 gBlockCount = 0;
OLDNEW
« no previous file with comments | « patches/cjdict.patch ('k') | patches/data.build.patch » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698