Ticket #307: xcache_func_patch.txt

File xcache_func_patch.txt, 2.9 KB (added by michael.y, 19 months ago)

2 Functions PHP_MINIT_FUNCTION(xcache and cacher)

Line 
1 static PHP_MINIT_FUNCTION(xcache) /* {{{ */
2 {
3       
4     #ifndef PHP_GINIT
5       ZEND_INIT_MODULE_GLOBALS(xcache, xc_init_globals, xc_shutdown_globals);
6     #endif
7    REGISTER_INI_ENTRIES();
8     
9    if (xc_coredump_dir && xc_coredump_dir[0]) {
10         xcache_init_crash_handler();
11     }
12   
13    if (strcmp(sapi_module.name, "cli") == 0) {
14       char *env;
15    if ((env = getenv("XCACHE_TEST")) != NULL) {
16       xc_test = (zend_bool) atoi(env);
17          call P
18       }
19    }
20   
21    xc_init_constant(module_number TSRMLS_CC);
22    xc_shm_init_modules();
23   
24   
25    #ifdef HAVE_XCACHE_CACHER
26       xc_cacher_startup_module();
27    #endif
28   
29    /* must be the first */     //to be prepended after Cacher, but in the zend_llist it(XCache) is first element
30    xcache_zend_extension_add(&xc_zend_extension_entry, 1);
31   
32     #ifdef HAVE_XCACHE_OPTIMIZER
33       xc_optimizer_startup_module();
34     #endif
35
36    //MOVED BEFORE xcache_zend_extension_add(&xc_zend_extension_entry, 1);
37
38     /*#ifdef HAVE_XCACHE_CACHER
39         //>-xc_cacher_startup_module();
40     #endif*/
41
42     #ifdef HAVE_XCACHE_COVERAGER
43        xc_coverager_startup_module();
44     #endif
45     #ifdef HAVE_XCACHE_DISASSEMBLER
46          xc_disassembler_startup_module();
47     #endif
48     
49    return SUCCESS;
50    }
51
52    static PHP_MINIT_FUNCTION(xcache_cacher) /* {{{ */
53    {
54    zend_extension *ext;
55    zend_llist_position lpos;
56 
57    ext = zend_get_extension("Zend Optimizer");
58    if (ext) {
59        /* zend_optimizer.optimization_level>0 is not compatible with other cacher, disabling */
60
61
62        ext->op_array_handler = NULL;
63    }
64    /* cache if there's an op_array_ctor */
65    for (ext = zend_llist_get_first_ex(&zend_extensions, &lpos);
66        ext;
67        ext = zend_llist_get_next_ex(&zend_extensions, &lpos)) {
68        if (ext->op_array_ctor) {
69            xc_have_op_array_ctor = 1;
70            break;
71        }
72    }
73 
74    xc_config_long(&xc_php_size,       "xcache.size",        "0");
75    xc_config_hash(&xc_php_hcache,     "xcache.count",       "1");
76    xc_config_hash(&xc_php_hentry,     "xcache.slots",      "8K");
77   
78    xc_config_long(&xc_var_size,       "xcache.var_size",    "0");
79    xc_config_hash(&xc_var_hcache,     "xcache.var_count",   "1");
80    xc_config_hash(&xc_var_hentry,     "xcache.var_slots",  "8K");
81     
82    if (strcmp(sapi_module.name, "cli") == 0) {
83        if (!xc_test) {
84        /* disable cache for cli except for testing */
85            xc_php_size = xc_var_size = 0;
86        }
87    }
88 
89    if (xc_php_size <= 0) {
90        xc_php_size = xc_php_hcache.size = 0;
91    }
92    if (xc_var_size <= 0) {
93        xc_var_size = xc_var_hcache.size = 0;
94    }
95   
96    xc_init_constant(module_number TSRMLS_CC);
97   
98        REGISTER_INI_ENTRIES();
99   
100        xc_sandbox_module_init(module_number TSRMLS_CC);
101        // code of XCACHE CACHER xcache_zend_extension_add(&xc_cacher_zend_extension_entry, 0);
102        return xcache_zend_extension_add(&xc_cacher_zend_extension_entry,1);  //Suggestion for modification
103 
104  }
105
106