X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=missing.h;h=5a1fc48c6c3617c6ed708b9b8ad770613ae275cd;hp=d767f40c7cf2733a42576a131c6b2e0a6035530d;hb=6e57bd8181dc682eb8694a458c354eaa1c1d5520;hpb=12253a8360a79b01a0747fe83cf1ec37132fd916 diff --git a/missing.h b/missing.h index d767f40..5a1fc48 100644 --- a/missing.h +++ b/missing.h @@ -6,7 +6,7 @@ | modification, are permitted provided that the conditions mentioned | | in the accompanying LICENSE file are met. | +--------------------------------------------------------------------+ - | Copyright (c) 2004-2007, Michael Wallner | + | Copyright (c) 2004-2010, Michael Wallner | +--------------------------------------------------------------------+ */ @@ -71,6 +71,19 @@ # define ZVAL_ADDREF Z_ADDREF_P #endif +#ifndef SEPARATE_ARG_IF_REF +#define SEPARATE_ARG_IF_REF(zv) \ + if (PZVAL_IS_REF(zv)) { \ + zval *ov = zv; \ + ALLOC_INIT_ZVAL(zv); \ + Z_TYPE_P(zv) = Z_TYPE_P(ov); \ + zv->value = ov->value; \ + zval_copy_ctor(zv); \ + } else { \ + ZVAL_ADDREF(zv); \ + } +#endif + #ifndef ZVAL_ZVAL #define ZVAL_ZVAL(z, zv, copy, dtor) { \ int is_ref, refcount; \