summaryrefslogtreecommitdiff
path: root/main/php_streams.h
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-07-31 10:53:31 +0400
committerDmitry Stogov <dmitry@zend.com>2014-07-31 10:53:31 +0400
commit449f3e645232055760c8ccca77498f83b88f5486 (patch)
tree6b006cdab3c95398eb359a95accf79d4f4bbaf03 /main/php_streams.h
parent72753068873921ad4b970623c1e727f9a7d7b5eb (diff)
downloadphp-git-449f3e645232055760c8ccca77498f83b88f5486.tar.gz
Fixed resource leak
Diffstat (limited to 'main/php_streams.h')
-rw-r--r--main/php_streams.h11
1 files changed, 2 insertions, 9 deletions
diff --git a/main/php_streams.h b/main/php_streams.h
index 2a142b99c2..fac15ce3e4 100644
--- a/main/php_streams.h
+++ b/main/php_streams.h
@@ -202,9 +202,7 @@ struct _php_stream {
* PHP_STREAM_FCLOSE_XXX as appropriate */
int fclose_stdiocast;
FILE *stdiocast; /* cache this, otherwise we might leak! */
-#if ZEND_DEBUG
int __exposed; /* non-zero if exposed as a zval somewhere */
-#endif
char *orig_path;
php_stream_context *context;
@@ -243,17 +241,12 @@ END_EXTERN_C()
#define php_stream_alloc(ops, thisptr, persistent_id, mode) _php_stream_alloc((ops), (thisptr), (persistent_id), (mode) STREAMS_CC TSRMLS_CC)
#define php_stream_get_resource_id(stream) ((php_stream *)(stream))->res->handle
-#if ZEND_DEBUG
/* use this to tell the stream that it is OK if we don't explicitly close it */
-# define php_stream_auto_cleanup(stream) { (stream)->__exposed++; }
+#define php_stream_auto_cleanup(stream) { (stream)->__exposed++; }
/* use this to assign the stream to a zval and tell the stream that is
* has been exported to the engine; it will expect to be closed automatically
* when the resources are auto-destructed */
-# define php_stream_to_zval(stream, zval) { ZVAL_RES(zval, (stream)->res); (stream)->__exposed++; }
-#else
-# define php_stream_auto_cleanup(stream) /* nothing */
-# define php_stream_to_zval(stream, zval) { ZVAL_RES(zval, (stream)->res); }
-#endif
+#define php_stream_to_zval(stream, zval) { ZVAL_RES(zval, (stream)->res); (stream)->__exposed++; }
#define php_stream_from_zval(xstr, pzval) ZEND_FETCH_RESOURCE2((xstr), php_stream *, (pzval), -1, "stream", php_file_le_stream(), php_file_le_pstream())
#define php_stream_from_zval_no_verify(xstr, pzval) (xstr) = (php_stream*)zend_fetch_resource((pzval) TSRMLS_CC, -1, "stream", NULL, 2, php_file_le_stream(), php_file_le_pstream())