From 9a677532dbc921f3b59cffc478b8ae3e9ed1ca8f Mon Sep 17 00:00:00 2001 From: Greg Beaver Date: Sun, 26 Jul 2009 01:03:47 +0000 Subject: [PATCH] re-organize slightly, fix more php6-only compile warnings in php_stream_copy_to_mem --- ext/phar/phar.c | 4 ++++ ext/phar/phar_internal.h | 32 ++++++++++++++++++++++++++++++++ ext/phar/phar_object.c | 34 ---------------------------------- ext/phar/tar.c | 4 ++++ ext/phar/zip.c | 16 ++++++++++++++++ 5 files changed, 56 insertions(+), 34 deletions(-) diff --git a/ext/phar/phar.c b/ext/phar/phar.c index 877a6663c9..9ea3756709 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -2647,7 +2647,11 @@ int phar_flush(phar_archive_data *phar, char *user_stub, long len, int convert, len = -len; } user_stub = 0; +#if PHP_MAJOR_VERSION >= 6 + if (!(len = php_stream_copy_to_mem(stubfile, (void **) &user_stub, len, 0)) || !user_stub) { +#else if (!(len = php_stream_copy_to_mem(stubfile, &user_stub, len, 0)) || !user_stub) { +#endif if (closeoldfile) { php_stream_close(oldfile); } diff --git a/ext/phar/phar_internal.h b/ext/phar/phar_internal.h index 7ebba2e513..83f072eca3 100755 --- a/ext/phar/phar_internal.h +++ b/ext/phar/phar_internal.h @@ -546,6 +546,38 @@ typedef zstr phar_zstr; b = ZSTR(a); #define PHAR_STR_FREE(a) \ efree(a); +static inline int phar_make_unicode(zstr *c_var, char *arKey, uint nKeyLength TSRMLS_DC) +{ + int c_var_len; + UConverter *conv = ZEND_U_CONVERTER(UG(runtime_encoding_conv)); + + c_var->u = NULL; + if (zend_string_to_unicode(conv, &c_var->u, &c_var_len, arKey, nKeyLength TSRMLS_CC) == FAILURE) { + + if (c_var->u) { + efree(c_var->u); + } + return 0; + + } + return c_var_len; +} +static inline int phar_find_key(HashTable *_SERVER, char *key, int len, void **stuff TSRMLS_DC) +{ + if (SUCCESS == zend_hash_find(_SERVER, key, len, stuff)) { + return 1; + } else { + int s = len; + zstr var; + s = phar_make_unicode(&var, key, len TSRMLS_CC); + if (SUCCESS == zend_u_hash_find(_SERVER, IS_UNICODE, var, s, stuff)) { + efree(var.u); + return 1; + } + efree(var.u); + return 0; + } +} #else typedef char *phar_zstr; #define PHAR_STR(a, b) \ diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index f5b89c873b..e908ad1d81 100755 --- a/ext/phar/phar_object.c +++ b/ext/phar/phar_object.c @@ -56,40 +56,6 @@ static int phar_file_type(HashTable *mimes, char *file, char **mime_type TSRMLS_ } /* }}} */ -#if PHP_MAJOR_VERSION >= 6 -static inline int phar_make_unicode(zstr *c_var, char *arKey, uint nKeyLength TSRMLS_DC) -{ - int c_var_len; - UConverter *conv = ZEND_U_CONVERTER(UG(runtime_encoding_conv)); - - c_var->u = NULL; - if (zend_string_to_unicode(conv, &c_var->u, &c_var_len, arKey, nKeyLength TSRMLS_CC) == FAILURE) { - - if (c_var->u) { - efree(c_var->u); - } - return 0; - - } - return c_var_len; -} -static inline int phar_find_key(HashTable *_SERVER, char *key, int len, void **stuff TSRMLS_DC) -{ - if (SUCCESS == zend_hash_find(_SERVER, key, len, stuff)) { - return 1; - } else { - int s = len; - zstr var; - s = phar_make_unicode(&var, key, len TSRMLS_CC); - if (SUCCESS == zend_u_hash_find(_SERVER, IS_UNICODE, var, s, stuff)) { - efree(var.u); - return 1; - } - efree(var.u); - return 0; - } -} -#endif static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char *basename, int request_uri_len TSRMLS_DC) /* {{{ */ { #if PHP_MAJOR_VERSION >= 6 diff --git a/ext/phar/tar.c b/ext/phar/tar.c index afc22d7808..383356fb93 100644 --- a/ext/phar/tar.c +++ b/ext/phar/tar.c @@ -928,7 +928,11 @@ int phar_tar_flush(phar_archive_data *phar, char *user_stub, long len, int defau len = -len; } user_stub = 0; +#if PHP_MAJOR_VERSION >= 6 + if (!(len = php_stream_copy_to_mem(stubfile, (void **) &user_stub, len, 0)) || !user_stub) { +#else if (!(len = php_stream_copy_to_mem(stubfile, &user_stub, len, 0)) || !user_stub) { +#endif if (error) { spprintf(error, 0, "unable to read resource to copy stub to new tar-based phar \"%s\"", phar->fname); } diff --git a/ext/phar/zip.c b/ext/phar/zip.c index 3086a03b10..383561ab87 100644 --- a/ext/phar/zip.c +++ b/ext/phar/zip.c @@ -600,7 +600,11 @@ foundit: php_stream_filter_append(&fp->readfilters, filter); +#if PHP_MAJOR_VERSION >= 6 + if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, (void **) &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) { +#else if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) { +#endif pefree(entry.filename, entry.is_persistent); #if PHP_VERSION_ID < 50207 PHAR_ZIP_FAIL("unable to read in alias, truncated (PHP 5.2.7 and newer has a potential fix for this problem)"); @@ -621,7 +625,11 @@ foundit: php_stream_filter_append(&fp->readfilters, filter); +#if PHP_MAJOR_VERSION >= 6 + if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, (void **) &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) { +#else if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) { +#endif pefree(entry.filename, entry.is_persistent); #if PHP_VERSION_ID < 50207 PHAR_ZIP_FAIL("unable to read in alias, truncated (PHP 5.2.7 and newer has a potential fix for this problem)"); @@ -632,7 +640,11 @@ foundit: php_stream_filter_flush(filter, 1); php_stream_filter_remove(filter, 1 TSRMLS_CC); } else { +#if PHP_MAJOR_VERSION >= 6 + if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, (void **) &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) { +#else if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) { +#endif pefree(entry.filename, entry.is_persistent); PHAR_ZIP_FAIL("unable to read in alias, truncated"); } @@ -1234,7 +1246,11 @@ int phar_zip_flush(phar_archive_data *phar, char *user_stub, long len, int defau user_stub = 0; +#if PHP_MAJOR_VERSION >= 6 + if (!(len = php_stream_copy_to_mem(stubfile, (void **) &user_stub, len, 0)) || !user_stub) { +#else if (!(len = php_stream_copy_to_mem(stubfile, &user_stub, len, 0)) || !user_stub) { +#endif if (error) { spprintf(error, 0, "unable to read resource to copy stub to new zip-based phar \"%s\"", phar->fname); } -- 2.50.1