- return_value = &EG(uninitialized_zval);
- return_value->refcount = 0;
- return_value->is_ref = 0;
+ if (type == BP_VAR_W) {
+ return_value = &EG(uninitialized_zval);
+ return_value->refcount = 1;
+ return_value->is_ref = 1;
+ } else {
+ ALLOC_ZVAL(return_value);
+ return_value->refcount = 0;
+ return_value->is_ref = 0;
+ }