Esempio n. 1
0
/* {{{ format_znode
 */
void *format_znode(znode *n, zend_uint base_address)
{
    char *tmp;
    char *buff = NULL;

    switch (n->op_type) {
        case IS_UNUSED:
            return pvt_sprintf("%s", " ");
            break;
        /* 1, Constant */
        case IS_CONST:
#if PHP_VERSION_ID >= 50399
            tmp = format_zval(n->zv, 0);
#else
            tmp = format_zval(&n->u.constant, 0);
#endif
            buff = pvt_sprintf("%s", tmp);
            efree(tmp);
            return buff;
            break;
        /* 16, Compiled variable */
        case IS_CV:
            return pvt_sprintf("!%d", n->u.var);
            break;
        /* 4, Variable */
        case IS_VAR:
            return pvt_sprintf("$%ld", n->u.var/sizeof(temp_variable));
            break;
        /* 2, TMP variable */
        case IS_TMP_VAR:
            return pvt_sprintf( "~%ld", n->u.var/sizeof(temp_variable));
            break;
        case PVT_IS_OPNUM:
            return pvt_sprintf("->%d", n->u.opline_num);
            break;
        case PVT_IS_OPLINE:
            return pvt_sprintf("->%ld", (n->u.opline_num - base_address) / sizeof(zend_op));
            break;
        case PVT_IS_CLASS:
            return pvt_sprintf(":%ld", n->u.var / sizeof(temp_variable));
            break;
        default:
            return pvt_sprintf("%s", " ");
            break;
    }
}
Esempio n. 2
0
void format_znode(znode *n, char *buffer){

	switch (n->op_type) {
		case IS_CONST:
#if PHP_VERSION_ID >= 50399
		format_zval(&n.zv, buffer);
#else
		format_zval(&n->u.constant, buffer);
#endif
			break;
		case IS_VAR:
			snprintf(buffer, BUFFER_LEN, "$%d",  n->u.var/sizeof(temp_variable));
			break;
		case IS_TMP_VAR:
			snprintf(buffer, BUFFER_LEN, "~%d",  n->u.var/sizeof(temp_variable));
			break;
		default:
            snprintf(buffer, BUFFER_LEN, "%S", "");
			break;
	}
}