Changeset 780


Ignore:
Timestamp:
2011-04-22T11:33:46+02:00 (4 years ago)
Author:
moo
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.