Changeset 21

Show
Ignore:
Timestamp:
04/14/06 12:57:45 (9 years ago)
Author:
george
Message:

cleanup and configurables

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/fastxsl.c

    r19 r21  
    215215ShmCache_UseAllocationFunctions(void) 
    216216{ 
    217         //xmlGcMemSetup(ShmCache_Free, ShmCache_Malloc, ShmCache_Malloc, ShmCache_Realloc, ShmCache_Strdup); 
    218217        xmlMemSetup(ShmCache_Free, ShmCache_Malloc, ShmCache_Realloc, ShmCache_Strdup); 
    219218} 
     
    223222Php_UseAllocationFunctions(void) 
    224223{ 
    225         //xmlGcMemSetup(Php_Free, Php_Malloc, Php_Malloc, Php_Realloc, Php_Strdup); 
    226224        xmlMemSetup(Php_Free, Php_Malloc, Php_Realloc, Php_Strdup); 
    227225} 
     
    230228Xml_UseAllocationFunctions(void) 
    231229{ 
    232         //xmlGcMemSetup(free_ptr, malloc_ptr, mallocatomic_ptr, realloc_ptr, strdup); 
    233230        xmlMemSetup(free_ptr, malloc_ptr,  realloc_ptr, strdup); 
    234231} 
     
    242239        wrapper = SS_Wrapper_Alloc(FASTXSL_SHARED_ALLOC TSRMLS_CC); 
    243240 
    244         //xmlCleanupParserr(); 
    245241        ShmCache_UseAllocationFunctions(); 
    246242        wrapper->alloc_type = FASTXSL_SHMALLOC; 
    247243        FASTXSL_G(tmp_allocated_size) = 0; 
    248 inshm = 1; 
    249244        zend_set_timeout(0); 
    250245        wrapper->ss = xsltParseStylesheetFile(filename); 
    251 inshm = 0; 
    252246        Xml_UseAllocationFunctions(); 
    253247        if (!wrapper->ss) { 
     
    264258                php_ss_wrapper *fallback; 
    265259                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); 
    267262                mm_unlock(FASTXSL_G(cache)->mm); 
    268263                if(fallback) { 
     
    317312        wrapper->alloc_type = FASTXSL_PRMALLOC; 
    318313 
    319         wrapper->ss = xsltParseStylesheetFile(filename); 
    320         ////xmlCleanupParserr(); 
     314        wrapper->ss = xsltParseStylesheetFile((xmlChar *)filename); 
    321315        if (!wrapper->ss) { 
    322316                return NULL; 
     
    325319         
    326320        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 */ 
    336322        } 
    337323 
     
    415401 
    416402        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()); 
    419405        mm_unlock(FASTXSL_G(cache)->mm); 
    420406} 
    421407 
    422 PHP_FUNCTION(fastxsl_xmlMemoryDump) 
    423 { 
    424   chdir("/tmp"); 
    425   xmlMemDisplay(stderr); 
    426 } 
    427408#endif 
    428409/* }}} */ 
     
    444425        wrapper->alloc_type = FASTXSL_PRMALLOC; 
    445426        Xml_UseAllocationFunctions(); 
    446         wrapper->ss = xsltParseStylesheetFile(filename); 
     427        wrapper->ss = xsltParseStylesheetFile((xmlChar*)filename); 
    447428        if (!wrapper->ss) { 
    448429                RETURN_FALSE; 
     
    468449        wrapper->alloc_type = FASTXSL_PRMALLOC; 
    469450        Xml_UseAllocationFunctions(); 
    470         wrapper->xd = xmlParseDoc(text); 
     451        wrapper->xd = xmlParseDoc((xmlChar *) text); 
    471452        if (!wrapper->xd) { 
    472453                _XD_Wrapper_Dtor(wrapper); 
     
    493474        wrapper = XD_Wrapper_Alloc(); 
    494475        wrapper->alloc_type = FASTXSL_PRMALLOC; 
    495         wrapper->xd = xmlParseFile((const xmlChar *) filename); 
     476        wrapper->xd = xmlParseFile((const char *) filename); 
    496477        if (!wrapper->xd) { 
    497478                _XD_Wrapper_Dtor(wrapper); 
     
    510491        HashPosition   pos; 
    511492        char          *key; 
    512         int            key_length; 
     493        uint           key_length; 
    513494        unsigned long  ival; 
    514495        int            index = 0; 
     
    955936        PHP_FE(fastxsl_shmcache_tostring,            NULL) 
    956937        PHP_FE(fastxsl_shmcache_getstatistics,       NULL) 
    957         PHP_FE(fastxsl_xmlMemoryDump,                NULL) 
    958938#endif 
    959939        PHP_FE(fastxsl_prmcache_transform,           NULL) 
     
    1008988        } 
    1009989        if(wrapper->persistant) { 
     990#ifdef FASTXSL_MM 
    1010991                mm_free(FASTXSL_G(cache)->mm, wrapper); 
     992#endif 
    1011993        } else { 
    1012994                free(wrapper); 
     
    11361118                fl_hash_free(cache->prmtable); 
    11371119        } 
    1138         if(globals->pool) { free(globals->pool); } 
    11391120} 
    11401121 
     
    11741155                        case XPATH_NODESET: 
    11751156                                tmp = xmlXPathCastToString(obj); 
    1176                                 ZVAL_STRING(param, tmp, 1); 
     1157                                ZVAL_STRING(param, (char *) tmp, 1); 
    11771158                                xmlFree(tmp); 
    11781159                                break; 
     
    11841165                                break; 
    11851166                        case XPATH_STRING: 
    1186                                 ZVAL_STRING(param, obj->stringval, 1); 
     1167                                ZVAL_STRING(param, (char *)obj->stringval, 1); 
    11871168                                break; 
    11881169                        default: 
    11891170                                zend_error(E_WARNING, "inexact type conversion %d", obj->type); 
    11901171                                tmp = xmlXPathCastToString(obj); 
    1191                                 ZVAL_STRING(param, tmp, 1); 
     1172                                ZVAL_STRING(param, (char *)tmp, 1); 
    11921173                                xmlFree(tmp); 
    11931174                                break; 
     
    12041185        } 
    12051186        MAKE_STD_ZVAL(function); 
    1206         ZVAL_STRING(function, fname, 1); 
     1187        ZVAL_STRING(function, (char *)fname, 1); 
    12071188        xmlFree(fname); 
    12081189        MAKE_STD_ZVAL(ret); 
     
    12261207                        break; 
    12271208                case IS_STRING: 
    1228                         xmlXPathReturnString(ctxt, xmlStrdup(Z_STRVAL_P(ret))); 
     1209                        xmlXPathReturnString(ctxt, xmlStrdup((xmlChar *) Z_STRVAL_P(ret))); 
    12291210                        break; 
    12301211                default: 
    12311212                        convert_to_string_ex(&ret); 
    1232                         xmlXPathReturnString(ctxt, xmlStrdup(Z_STRVAL_P(ret))); 
     1213                        xmlXPathReturnString(ctxt, xmlStrdup((xmlChar *) Z_STRVAL_P(ret))); 
    12331214                        break; 
    12341215        } 
     
    12541235        STD_PHP_INI_ENTRY("fastxsl.shmpath", "/tmp/fastxsl_mem", PHP_INI_SYSTEM, OnUpdateString, shmpath, zend_fastxsl_globals, fastxsl_globals) 
    12551236        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)  
    12561238        STD_PHP_INI_BOOLEAN("fastxsl.register_functions", "0", PHP_INI_ALL, OnUpdateLong, register_functions, zend_fastxsl_globals, fastxsl_globals)  
    12571239PHP_INI_END() 
     
    12831265         
    12841266        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); 
    12861268        free_alloca(shmpath); 
    12871269        if (!FASTXSL_G(cache)->mm) { 
  • trunk/php_fastxsl.h

    r18 r21  
    100100        char     *errbuf; 
    101101        long      nostat; 
     102        long      memalloc; 
    102103        long      register_functions; 
    103104        long      tmp_allocated_size; 
    104         void     ***pool; 
    105         int      *pool_offset; 
    106         int      *pool_allocd; 
    107105} zend_fastxsl_globals; 
    108106