def assign(self, c):
        assert isinstance(c, zend_constant)
        if self.null:
            raise Exception('null pointer assignment')

        import zval_utils
        self.c.value = zval_utils.zval_copy(c.value)
Example #2
0
def promote_to_ref(ptr):
    zval = _cast_ptr_to_zval(ptr)
    if zval_utils.Z_TYPE(zval) == IS_HPHP_REF:
        return _cast_to_zval_ptr(zval.zval)

    new_zval = zval_utils.zval_copy(zval)
    zval_utils.Z_SET_TYPE(zval, IS_HPHP_REF)
    zval.zval = new_zval
    return _cast_to_zval_ptr(new_zval)
Example #3
0
def promote_to_ref(ptr):
    zval = _cast_ptr_to_zval(ptr)
    if zval_utils.Z_TYPE(zval) == IS_HPHP_REF:
      return _cast_to_zval_ptr(zval.zval)

    new_zval = zval_utils.zval_copy(zval)
    zval_utils.Z_SET_TYPE(zval, IS_HPHP_REF)
    zval.zval = new_zval
    return _cast_to_zval_ptr(new_zval)
Example #4
0
def assign_zval(ptr, ptr2):
    zval = _cast_ptr_to_zval(ptr)
    zval2 = _cast_ptr_to_zval(ptr2)
    return _cast_to_zval_ptr(zval_utils.zval_copy(zval2, zval))
Example #5
0
def copy_zval(ptr):
    zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr))
    new_zval = zval_utils.zval_copy(zval)
    return _cast_to_zval_ptr(new_zval)
Example #6
0
def assign_zval(ptr, ptr2):
    zval = _cast_ptr_to_zval(ptr)
    zval2 = _cast_ptr_to_zval(ptr2)
    return _cast_to_zval_ptr(zval_utils.zval_copy(zval2, zval))
Example #7
0
def copy_zval(ptr):
    zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr))
    new_zval = zval_utils.zval_copy(zval)
    return _cast_to_zval_ptr(new_zval)