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)
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)
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))
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)