def set_zval_ref(ptr, ptr2): zval = _cast_ptr_to_zval(ptr) zval2 = _cast_ptr_to_zval(ptr2) # FIXME: set refcount??? zval_utils.Z_SET_TYPE(zval, IS_HPHP_REF) zval.zval = zval2 return ptr
def array_init(arg): zv = zval_utils.make_empty_zval() from happy_variables import zval_ptr_dtor zv.happy_ht = happy_hash.zend_hash_init(None, 0, None, zval_ptr_dtor, False) zval_utils.Z_SET_TYPE(zv, IS_ARRAY) arg.assign(zv) return 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)
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 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_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_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 set_null(ptr): zval = zval_utils.Z_ZVAL(_cast_ptr_to_zval(ptr)) zval_utils.Z_SET_TYPE(zval, IS_NULL) return ptr