Changeset 21
- Timestamp:
- 04/14/06 12:57:45 (7 years ago)
- Files:
-
- trunk/fastxsl.c (modified) (21 diffs)
- trunk/php_fastxsl.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/fastxsl.c
r19 r21 215 215 ShmCache_UseAllocationFunctions(void) 216 216 { 217 //xmlGcMemSetup(ShmCache_Free, ShmCache_Malloc, ShmCache_Malloc, ShmCache_Realloc, ShmCache_Strdup);218 217 xmlMemSetup(ShmCache_Free, ShmCache_Malloc, ShmCache_Realloc, ShmCache_Strdup); 219 218 } … … 223 222 Php_UseAllocationFunctions(void) 224 223 { 225 //xmlGcMemSetup(Php_Free, Php_Malloc, Php_Malloc, Php_Realloc, Php_Strdup);226 224 xmlMemSetup(Php_Free, Php_Malloc, Php_Realloc, Php_Strdup); 227 225 } … … 230 228 Xml_UseAllocationFunctions(void) 231 229 { 232 //xmlGcMemSetup(free_ptr, malloc_ptr, mallocatomic_ptr, realloc_ptr, strdup);233 230 xmlMemSetup(free_ptr, malloc_ptr, realloc_ptr, strdup); 234 231 } … … 242 239 wrapper = SS_Wrapper_Alloc(FASTXSL_SHARED_ALLOC TSRMLS_CC); 243 240 244 //xmlCleanupParserr();245 241 ShmCache_UseAllocationFunctions(); 246 242 wrapper->alloc_type = FASTXSL_SHMALLOC; 247 243 FASTXSL_G(tmp_allocated_size) = 0; 248 inshm = 1;249 244 zend_set_timeout(0); 250 245 wrapper->ss = xsltParseStylesheetFile(filename); 251 inshm = 0;252 246 Xml_UseAllocationFunctions(); 253 247 if (!wrapper->ss) { … … 264 258 php_ss_wrapper *fallback; 265 259 mm_lock(FASTXSL_G(cache)->mm, MM_LOCK_RD); 266 fallback = fl_hash_find(FASTXSL_G(cache)->table, filename, filename_len); 260 fallback = fl_hash_find(FASTXSL_G(cache)->table, filename, 261 filename_len); 267 262 mm_unlock(FASTXSL_G(cache)->mm); 268 263 if(fallback) { … … 317 312 wrapper->alloc_type = FASTXSL_PRMALLOC; 318 313 319 wrapper->ss = xsltParseStylesheetFile(filename); 320 ////xmlCleanupParserr(); 314 wrapper->ss = xsltParseStylesheetFile((xmlChar *)filename); 321 315 if (!wrapper->ss) { 322 316 return NULL; … … 325 319 326 320 if(fl_hash_add(FASTXSL_G(cache)->prmtable, filename, filename_len, wrapper) == 0) { 327 /* we failed */ 328 php_ss_wrapper *fallback; 329 mm_lock(FASTXSL_G(cache)->mm, MM_LOCK_RD); 330 fallback = fl_hash_find(FASTXSL_G(cache)->table, filename, filename_len); 331 mm_unlock(FASTXSL_G(cache)->mm); 332 if(fallback) { 333 ShmCache_Stylesheet_Free(wrapper); 334 wrapper = fallback; 335 } 321 /* we failed, not much we can do here, and no race */ 336 322 } 337 323 … … 415 401 416 402 add_assoc_long(return_value, "apparent_allocated", allocated_bytes); 417 add_assoc_long(return_value, " real_allocated", mm_maxsize() - mm_available(FASTXSL_G(cache)->mm));418 add_assoc_long(return_value, "shm_ maxsize", (long) mm_maxsize());403 add_assoc_long(return_value, "allocated", mm_maxsize() - mm_available(FASTXSL_G(cache)->mm)); 404 add_assoc_long(return_value, "shm_size", (long) mm_maxsize()); 419 405 mm_unlock(FASTXSL_G(cache)->mm); 420 406 } 421 407 422 PHP_FUNCTION(fastxsl_xmlMemoryDump)423 {424 chdir("/tmp");425 xmlMemDisplay(stderr);426 }427 408 #endif 428 409 /* }}} */ … … 444 425 wrapper->alloc_type = FASTXSL_PRMALLOC; 445 426 Xml_UseAllocationFunctions(); 446 wrapper->ss = xsltParseStylesheetFile( filename);427 wrapper->ss = xsltParseStylesheetFile((xmlChar*)filename); 447 428 if (!wrapper->ss) { 448 429 RETURN_FALSE; … … 468 449 wrapper->alloc_type = FASTXSL_PRMALLOC; 469 450 Xml_UseAllocationFunctions(); 470 wrapper->xd = xmlParseDoc( text);451 wrapper->xd = xmlParseDoc((xmlChar *) text); 471 452 if (!wrapper->xd) { 472 453 _XD_Wrapper_Dtor(wrapper); … … 493 474 wrapper = XD_Wrapper_Alloc(); 494 475 wrapper->alloc_type = FASTXSL_PRMALLOC; 495 wrapper->xd = xmlParseFile((const xmlChar *) filename);476 wrapper->xd = xmlParseFile((const char *) filename); 496 477 if (!wrapper->xd) { 497 478 _XD_Wrapper_Dtor(wrapper); … … 510 491 HashPosition pos; 511 492 char *key; 512 intkey_length;493 uint key_length; 513 494 unsigned long ival; 514 495 int index = 0; … … 955 936 PHP_FE(fastxsl_shmcache_tostring, NULL) 956 937 PHP_FE(fastxsl_shmcache_getstatistics, NULL) 957 PHP_FE(fastxsl_xmlMemoryDump, NULL)958 938 #endif 959 939 PHP_FE(fastxsl_prmcache_transform, NULL) … … 1008 988 } 1009 989 if(wrapper->persistant) { 990 #ifdef FASTXSL_MM 1010 991 mm_free(FASTXSL_G(cache)->mm, wrapper); 992 #endif 1011 993 } else { 1012 994 free(wrapper); … … 1136 1118 fl_hash_free(cache->prmtable); 1137 1119 } 1138 if(globals->pool) { free(globals->pool); }1139 1120 } 1140 1121 … … 1174 1155 case XPATH_NODESET: 1175 1156 tmp = xmlXPathCastToString(obj); 1176 ZVAL_STRING(param, tmp, 1);1157 ZVAL_STRING(param, (char *) tmp, 1); 1177 1158 xmlFree(tmp); 1178 1159 break; … … 1184 1165 break; 1185 1166 case XPATH_STRING: 1186 ZVAL_STRING(param, obj->stringval, 1);1167 ZVAL_STRING(param, (char *)obj->stringval, 1); 1187 1168 break; 1188 1169 default: 1189 1170 zend_error(E_WARNING, "inexact type conversion %d", obj->type); 1190 1171 tmp = xmlXPathCastToString(obj); 1191 ZVAL_STRING(param, tmp, 1);1172 ZVAL_STRING(param, (char *)tmp, 1); 1192 1173 xmlFree(tmp); 1193 1174 break; … … 1204 1185 } 1205 1186 MAKE_STD_ZVAL(function); 1206 ZVAL_STRING(function, fname, 1);1187 ZVAL_STRING(function, (char *)fname, 1); 1207 1188 xmlFree(fname); 1208 1189 MAKE_STD_ZVAL(ret); … … 1226 1207 break; 1227 1208 case IS_STRING: 1228 xmlXPathReturnString(ctxt, xmlStrdup( Z_STRVAL_P(ret)));1209 xmlXPathReturnString(ctxt, xmlStrdup((xmlChar *) Z_STRVAL_P(ret))); 1229 1210 break; 1230 1211 default: 1231 1212 convert_to_string_ex(&ret); 1232 xmlXPathReturnString(ctxt, xmlStrdup( Z_STRVAL_P(ret)));1213 xmlXPathReturnString(ctxt, xmlStrdup((xmlChar *) Z_STRVAL_P(ret))); 1233 1214 break; 1234 1215 } … … 1254 1235 STD_PHP_INI_ENTRY("fastxsl.shmpath", "/tmp/fastxsl_mem", PHP_INI_SYSTEM, OnUpdateString, shmpath, zend_fastxsl_globals, fastxsl_globals) 1255 1236 STD_PHP_INI_BOOLEAN("fastxsl.nostat", "0", PHP_INI_ALL, OnUpdateLong, nostat, zend_fastxsl_globals, fastxsl_globals) 1237 STD_PHP_INI_BOOLEAN("fastxsl.memalloc", "0", PHP_INI_SYSTEM, OnUpdateLong, memalloc, zend_fastxsl_globals, fastxsl_globals) 1256 1238 STD_PHP_INI_BOOLEAN("fastxsl.register_functions", "0", PHP_INI_ALL, OnUpdateLong, register_functions, zend_fastxsl_globals, fastxsl_globals) 1257 1239 PHP_INI_END() … … 1283 1265 1284 1266 FASTXSL_G(cache)->owner = getpid(); 1285 FASTXSL_G(cache)->mm = mm_create( 0, shmpath);1267 FASTXSL_G(cache)->mm = mm_create(FASTXSL_G(memalloc), shmpath); 1286 1268 free_alloca(shmpath); 1287 1269 if (!FASTXSL_G(cache)->mm) { trunk/php_fastxsl.h
r18 r21 100 100 char *errbuf; 101 101 long nostat; 102 long memalloc; 102 103 long register_functions; 103 104 long tmp_allocated_size; 104 void ***pool;105 int *pool_offset;106 int *pool_allocd;107 105 } zend_fastxsl_globals; 108 106
