-void psi_to_bool(zval *return_value, set_value *set, impl_val *ret_val);
-void psi_to_int(zval *return_value, set_value *set, impl_val *ret_val);
-void psi_to_double(zval *return_value, set_value *set, impl_val *ret_val);
-void psi_to_string(zval *return_value, set_value *set, impl_val *ret_val);
-void psi_to_array(zval *return_value, set_value *set, impl_val *ret_val);
+static inline psi_object *PSI_OBJ(zval *zv, zend_object *zo) {
+ if (zv) {
+ zo = Z_OBJ_P(zv);
+ }
+ return (void *) (((char *) zo) - zo->handlers->offset);
+}