--- parser3/src/main/pa_globals.C 2017/12/03 23:36:23 1.199 +++ parser3/src/main/pa_globals.C 2019/12/25 22:22:06 1.205 @@ -17,6 +17,7 @@ extern "C" { #endif #include "pa_globals.h" +#include "pa_socks.h" #include "pa_sapi.h" #include "pa_threads.h" #include "pa_xml_io.h" @@ -28,7 +29,7 @@ extern "C" { #include "ltdl.h" #include "pcre.h" -volatile const char * IDENT_PA_GLOBALS_C="$Id: pa_globals.C,v 1.199 2017/12/03 23:36:23 moko Exp $" IDENT_PA_GLOBALS_H IDENT_PA_SAPI_H; +volatile const char * IDENT_PA_GLOBALS_C="$Id: pa_globals.C,v 1.205 2019/12/25 22:22:06 moko Exp $" IDENT_PA_GLOBALS_H IDENT_PA_SAPI_H; // defines @@ -36,32 +37,15 @@ volatile const char * IDENT_PA_GLOBALS_C // globals -short hex_value[0x100]={0}; - -static void setup_hex_value() { - hex_value['0'] = 0; - hex_value['1'] = 1; - hex_value['2'] = 2; - hex_value['3'] = 3; - hex_value['4'] = 4; - hex_value['5'] = 5; - hex_value['6'] = 6; - hex_value['7'] = 7; - hex_value['8'] = 8; - hex_value['9'] = 9; - hex_value['A'] = 10; - hex_value['B'] = 11; - hex_value['C'] = 12; - hex_value['D'] = 13; - hex_value['E'] = 14; - hex_value['F'] = 15; - hex_value['a'] = 10; - hex_value['b'] = 11; - hex_value['c'] = 12; - hex_value['d'] = 13; - hex_value['e'] = 14; - hex_value['f'] = 15; -} +short hex_value[0x100] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, + 0, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; THREAD_LOCAL Request* thread_request=NULL; @@ -232,15 +216,24 @@ static void gc_substitute_memory_managem @test hint on one should call this for each thread xmlSubstituteEntitiesDefault(1); */ void pa_globals_init() { - // global variables + +#ifndef PA_DEBUG_DISABLE_GC + GC_java_finalization=0; + // Dont collect unless explicitly requested + // this is quicker (~30% ), but less memory-efficient(~8%) + // so deciding for speed + GC_dont_gc=1; +#endif + + // init socks + pa_socks_init(); + + // global variables cache_managers=new Cache_managers; // in various libraries gc_substitute_memory_management_functions(); - // hex value - setup_hex_value(); - #ifdef SYMBOLS_CACHING // symbols cache Symbols::init(); @@ -300,6 +293,8 @@ void pa_globals_done() { if(is_dlinited) lt_dlexit(); + + pa_socks_done(); } void pa_dlinit() { @@ -312,45 +307,45 @@ void pa_dlinit() { #ifdef _MSC_VER -#ifndef PA_DEBUG_DISABLE_GC +#define PREFIX "../../../../win32/" -#define GC_LIB "../../../../win32/gc" #ifdef _DEBUG -#pragma comment(lib, GC_LIB "/Debug/gc.lib") +#define CONFIGURATION "Debug" +#else +#define CONFIGURATION "Release" +#endif + +#ifdef _WIN64 +#define PLATFORM_64 "x64/" +#define PLATFORM_32 "" #else -#pragma comment(lib, GC_LIB "/Release/gc.lib") +#define PLATFORM_64 "" +#define PLATFORM_32 "win32/" #endif +#pragma comment(lib, PREFIX "pcre/" PLATFORM_64 CONFIGURATION "/pcre.lib") + +#ifndef PA_DEBUG_DISABLE_GC + +#pragma comment(lib, PREFIX "gc/" PLATFORM_64 CONFIGURATION "/gc.lib") + #endif // PA_DEBUG_DISABLE_GC #ifdef XML -#define GNOME_LIBS "../../../../win32/gnome" +#define GNOME_LIBS PREFIX "gnome" -#ifdef _DEBUG -#define LIB_XML GNOME_LIBS "/libxml2-x.x.x/win32/debug/lib/" -#define LIB_XSLT GNOME_LIBS "/libxslt-x.x.x/win32/debug/lib/" -#else -#define LIB_XML GNOME_LIBS "/libxml2-x.x.x/win32/release/lib/" -#define LIB_XSLT GNOME_LIBS "/libxslt-x.x.x/win32/release/lib/" -#endif +#define LIB_XML PREFIX "gnome/libxml2-x.x.x/" PLATFORM_64 PLATFORM_32 CONFIGURATION "/lib/" +#define LIB_XSLT PREFIX "gnome/libxslt-x.x.x/" PLATFORM_64 PLATFORM_32 CONFIGURATION "/lib/" -#ifdef LIBXML_STATIC +#ifdef XML_STATIC #pragma comment(lib, LIB_XML "libxml2_a.lib") -#else -#pragma comment(lib, LIB_XML "libxml2.lib") -#endif - -#ifdef LIBXSLT_STATIC #pragma comment(lib, LIB_XSLT "libxslt_a.lib") -#else -#pragma comment(lib, LIB_XSLT "libxslt.lib") -#endif - -#ifdef LIBEXSLT_STATIC #pragma comment(lib, LIB_XSLT "libexslt_a.lib") #else +#pragma comment(lib, LIB_XML "libxml2.lib") +#pragma comment(lib, LIB_XSLT "libxslt.lib") #pragma comment(lib, LIB_XSLT "libexslt.lib") #endif