source: trunk/xcache/xc_compatibility.c

Last change on this file was 1561, checked in by moo, 6 weeks ago

fix build for older PHP

  • Property svn:eol-style set to native
File size: 1.4 KB
Line 
1#include "xc_compatibility.h"
2
3#ifndef ZEND_ENGINE_2_3
4#include "ext/standard/php_string.h"
5size_t xc_dirname(char *path, size_t len) /* {{{ */
6{
7#ifdef ZEND_ENGINE_2
8    return php_dirname(path, len);
9#else
10    php_dirname(path, len);
11    return strlen(path);
12#endif
13}
14/* }}} */
15
16long xc_atol(const char *str, int str_len) /* {{{ */
17{
18    long retval;
19
20    if (!str_len) {
21        str_len = strlen(str);
22    }
23
24    retval = strtol(str, NULL, 0);
25    if (str_len > 0) {
26        switch (str[str_len - 1]) {
27        case 'g':
28        case 'G':
29            retval *= 1024;
30            /* break intentionally missing */
31        case 'm':
32        case 'M':
33            retval *= 1024;
34            /* break intentionally missing */
35        case 'k':
36        case 'K':
37            retval *= 1024;
38            break;
39        }
40    }
41
42    return retval;
43}
44/* }}} */
45#endif
46
47#if defined(ZEND_ENGINE_2) && !defined(ZEND_ENGINE_2_2)
48void *xc_object_store_get_object_by_handle(zend_object_handle handle TSRMLS_DC) /* {{{ */
49{
50    zval zobject;
51    Z_OBJ_HANDLE_P(&zobject) = handle;
52    return zend_object_store_get_object(&zobject TSRMLS_CC);
53}
54/* }}} */
55void xc_objects_store_add_ref_by_handle(zend_object_handle handle TSRMLS_DC) /* {{{ */
56{
57    zval zobject;
58    Z_OBJ_HANDLE_P(&zobject) = handle;
59    zend_objects_store_add_ref(&zobject TSRMLS_CC);
60}
61/* }}} */
62void xc_objects_store_del_ref_by_handle(zend_object_handle handle TSRMLS_DC) /* {{{ */
63{
64    zval zobject;
65    Z_OBJ_HANDLE_P(&zobject) = handle;
66    zobject.refcount = 0;
67    zend_objects_store_del_ref(&zobject TSRMLS_CC);
68}
69/* }}} */
70#endif
Note: See TracBrowser for help on using the repository browser.