def set_hash(ptr, ptr2): zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr)) ht = _cast_ptr_to_ht(ptr2) zval_utils.Z_SET_TYPE(zval, IS_ARRAY) zval.happy_ht = ht return ptr
def get_refcount(ptr): zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr)) return zval.refcount__gc
def set_double(ptr, dval): zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr)) zval_utils.Z_SET_TYPE(zval, IS_DOUBLE) zval.dval = dval return ptr
def set_string(ptr, sd): zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr)) zval_utils.Z_SET_TYPE(zval, IS_STRING) zval.str = objects.MutableString.from_string_data(sd) return ptr
def set_null(ptr): zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr)) zval_utils.Z_SET_TYPE(zval, IS_NULL) return ptr
def set_int(ptr, lval): zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr)) zval_utils.Z_SET_TYPE(zval, IS_LONG) zval.lval = lval return ptr
def to_hash_table(ptr): zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr)) assert zval_utils.Z_TYPE(zval) == IS_ARRAY return _cast_to_ht_ptr(zval.happy_ht)
def to_string(ptr): zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr)) assert zval_utils.Z_TYPE(zval) == IS_STRING return zval_utils.Z_STRVAL(zval).get_string_data()
def to_double(ptr): zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr)) assert zval_utils.Z_TYPE(zval) == IS_DOUBLE return zval_utils.Z_DVAL(zval)
def to_int(ptr, base): assert base == 10 zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr)) assert zval_utils.Z_TYPE(zval) in [IS_LONG, IS_BOOL] return zval_utils.Z_LVAL(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)