@@ -665,6 +665,7 @@ xmlIsMainThread(void) {
665
665
}
666
666
667
667
#ifdef LIBXML_THREAD_ENABLED
668
+
668
669
static void
669
670
xmlFreeGlobalState (void * state )
670
671
{
@@ -848,6 +849,34 @@ xmlGetThreadLocalStorage(int allowFailure) {
848
849
849
850
return (gs );
850
851
}
852
+
853
+ /* Define thread-local storage accessors with macro magic */
854
+
855
+ #define XML_DEFINE_GLOBAL_WRAPPER (name , type , attrs ) \
856
+ type *__##name(void) { \
857
+ if (IS_MAIN_THREAD) \
858
+ return (&name); \
859
+ else \
860
+ return (&xmlGetThreadLocalStorage(0)->gs_##name); \
861
+ }
862
+
863
+ #define XML_OP XML_DEFINE_GLOBAL_WRAPPER
864
+ XML_GLOBALS_ALLOC
865
+ XML_GLOBALS_ERROR
866
+ XML_GLOBALS_HTML
867
+ XML_GLOBALS_IO
868
+ XML_GLOBALS_PARSER
869
+ XML_GLOBALS_SAVE
870
+ XML_GLOBALS_TREE
871
+ #undef XML_OP
872
+
873
+ /* For backward compatibility */
874
+
875
+ const char * const *
876
+ __xmlParserVersion (void ) {
877
+ return & xmlParserVersion ;
878
+ }
879
+
851
880
#endif /* LIBXML_THREAD_ENABLED */
852
881
853
882
/**
@@ -874,7 +903,7 @@ xmlGetThreadLocalStorage(int allowFailure) {
874
903
*/
875
904
int
876
905
xmlCheckThreadLocalStorage (void ) {
877
- #if defined(LIBXML_THREAD_ENABLED ) && !defined(XML_THREAD_LOCAL_STORAGE )
906
+ #if defined(LIBXML_THREAD_ENABLED ) && !defined(XML_THREAD_LOCAL )
878
907
if ((!xmlIsMainThreadInternal ()) && (xmlGetThreadLocalStorage (1 ) == NULL ))
879
908
return (-1 );
880
909
#endif
@@ -892,8 +921,8 @@ xmlCheckThreadLocalStorage(void) {
892
921
*
893
922
* Returns TRUE always
894
923
*/
895
- #ifdef HAVE_POSIX_THREADS
896
- #elif defined( HAVE_WIN32_THREADS ) && (!defined(LIBXML_STATIC ) || defined(LIBXML_STATIC_FOR_DLL ))
924
+ #if defined( HAVE_WIN32_THREADS ) && \
925
+ (!defined(LIBXML_STATIC ) || defined(LIBXML_STATIC_FOR_DLL ))
897
926
#if defined(LIBXML_STATIC_FOR_DLL )
898
927
int
899
928
xmlDllMain (ATTRIBUTE_UNUSED void * hinstDLL , unsigned long fdwReason ,
@@ -1138,32 +1167,3 @@ xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc fun
1138
1167
return (old );
1139
1168
}
1140
1169
1141
- /* Define thread-local storage accessors with macro magic */
1142
-
1143
- #ifdef LIBXML_THREAD_ENABLED
1144
- #define XML_DEFINE_GLOBAL_WRAPPER (name , type , attrs ) \
1145
- type *__##name(void) { \
1146
- if (IS_MAIN_THREAD) \
1147
- return (&name); \
1148
- else \
1149
- return (&xmlGetThreadLocalStorage(0)->gs_##name); \
1150
- }
1151
-
1152
- #define XML_OP XML_DEFINE_GLOBAL_WRAPPER
1153
- XML_GLOBALS_ALLOC
1154
- XML_GLOBALS_ERROR
1155
- XML_GLOBALS_HTML
1156
- XML_GLOBALS_IO
1157
- XML_GLOBALS_PARSER
1158
- XML_GLOBALS_SAVE
1159
- XML_GLOBALS_TREE
1160
- #undef XML_OP
1161
-
1162
- /* For backward compatibility */
1163
-
1164
- const char * const *
1165
- __xmlParserVersion (void ) {
1166
- return & xmlParserVersion ;
1167
- }
1168
- #endif
1169
-
0 commit comments