Changeset 780 in svn for trunk


Ignore:
Timestamp:
2011-04-22T11:33:46+02:00 (4 years ago)
Author:
Xuefer
Message:

prepare for use()

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Decompiler.class.php

    r777 r780  
    737737        $EX['last'] = count($opcodes) - 1;
    738738        $EX['silence'] = 0;
     739        $EX['recvs'] = array();
     740        $EX['uses'] = array();
    739741
    740742        for ($next = 0, $last = $EX['last'];
     
    11401142                    }
    11411143                    $resvar = "$lvalue = " . str($rvalue, $EX);
     1144                    if (0) {
     1145                    if ($op2['op_type'] == XC_IS_VAR) {
     1146                        $resvar .= ' /* isvar */';
     1147                    }
     1148                    else if ($op2['op_type'] == XC_IS_TMP_VAR) {
     1149                        $resvar .= ' /* istmp */';
     1150                    }
     1151                    }
    11421152                    break;
    11431153                    // }}}
     
    18421852    }
    18431853    // }}}
     1854    function duses(&$EX, $indent) // {{{
     1855    {
     1856        if (!$EX['uses']) {
     1857            return;
     1858        }
     1859
     1860        $uses = array();
     1861        foreach ($EX['uses'] as $name => $value) {
     1862            $uses = '$' . $name;
     1863        }
     1864        echo ' use(', implode(', ', $uses), ')';
     1865    }
     1866    // }}}
    18441867    function dfunction($func, $indent = '', $nobody = false) // {{{
    18451868    {
     
    18501873            $EX['op_array'] = &$func['op_array'];
    18511874            $EX['recvs'] = array();
     1875            $EX['uses'] = array();
    18521876        }
    18531877        else {
     
    18561880            $EX = &$this->dop_array($func['op_array'], $newindent);
    18571881            $body = ob_get_clean();
    1858             if (!isset($EX['recvs'])) {
    1859                 $EX['recvs'] = array();
    1860             }
    18611882        }
    18621883
     
    18681889        $this->dargs($EX, $indent);
    18691890        echo ")";
     1891        $this->duses($EX, $indent);
    18701892        if ($nobody) {
    18711893            echo ";\n";
  • trunk/decompilesample.php

    r761 r780  
    363363    static $static = array(1);
    364364    $tax = 'tax';
     365    $tax = --$tax;
    365366    $pricePerItem = constant('PRICE_' . strtoupper($product));
    366367    $total += $pricePerItem * $quantity * ($tax + 1);
  • trunk/xcache.c

    r767 r780  
    28752875}
    28762876/* }}} */
     2877/* {{{ proto int xcache_get_refcount(mixed variable)
     2878   Get reference count of variable */
     2879PHP_FUNCTION(xcache_get_refcount)
     2880{
     2881    zval *variable;
     2882    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &variable) == FAILURE) {
     2883        RETURN_NULL();
     2884    }
     2885
     2886    RETURN_LONG(Z_REFCOUNT_P(variable));
     2887}
     2888/* }}} */
     2889/* {{{ proto bool xcache_get_isref(mixed variable)
     2890   check if variable data is marked referenced */
     2891PHP_FUNCTION(xcache_get_isref)
     2892{
     2893    zval *variable;
     2894    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &variable) == FAILURE) {
     2895        RETURN_NULL();
     2896    }
     2897
     2898    RETURN_BOOL(Z_ISREF_P(variable));
     2899}
     2900/* }}} */
    28772901#ifdef HAVE_XCACHE_DPRINT
    28782902/* {{{ proto bool  xcache_dprint(mixed value)
     
    31163140    PHP_FE(xcache_unset,             NULL)
    31173141    PHP_FE(xcache_unset_by_prefix,   NULL)
     3142    PHP_FE(xcache_get_refcount,      NULL)
     3143    PHP_FE(xcache_get_isref,         NULL)
    31183144#ifdef HAVE_XCACHE_DPRINT
    31193145    PHP_FE(xcache_dprint,            NULL)
Note: See TracChangeset for help on using the changeset viewer.