diff options
-rw-r--r-- | ext/exif/exif.c | 78 |
1 files changed, 39 insertions, 39 deletions
diff --git a/ext/exif/exif.c b/ext/exif/exif.c index 7900998a81..b0fb69b5f2 100644 --- a/ext/exif/exif.c +++ b/ext/exif/exif.c @@ -222,7 +222,7 @@ static PHP_GINIT_FUNCTION(exif) PHP_MINIT_FUNCTION(exif) { REGISTER_INI_ENTRIES(); - if (zend_hash_exists(&module_registry, "mbstring", sizeof("mbstring"))) { + if (zend_hash_str_exists(&module_registry, "mbstring", sizeof("mbstring"))) { REGISTER_LONG_CONSTANT("EXIF_USE_MBSTRING", 1, CONST_CS | CONST_PERSISTENT); } else { REGISTER_LONG_CONSTANT("EXIF_USE_MBSTRING", 0, CONST_CS | CONST_PERSISTENT); @@ -1941,17 +1941,16 @@ static void add_assoc_image_info(zval *value, int sub_array, image_info_type *im #endif image_info_value *info_value; image_info_data *info_data; - zval *tmpi, *array = NULL; + zval tmpi, array; #ifdef EXIF_DEBUG /* php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Adding %d infos from section %s", image_info->info_list[section_index].count, exif_get_sectionname(section_index));*/ #endif if (image_info->info_list[section_index].count) { if (sub_array) { - MAKE_STD_ZVAL(tmpi); - array_init(tmpi); + array_init(&tmpi); } else { - tmpi = value; + tmpi = *value; } for(i=0; i<image_info->info_list[section_index].count; i++) { @@ -1968,7 +1967,7 @@ static void add_assoc_image_info(zval *value, int sub_array, image_info_type *im /* php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Adding infos: tag(0x%04X,%12s,L=0x%04X): %s", info_tag, exif_get_tagname(info_tag, buffer, -12, exif_get_tag_table(section_index) TSRMLS_CC), info_data->length, info_data->format==TAG_FMT_STRING?(info_value&&info_value->s?info_value->s:"<no data>"):exif_get_tagformat(info_data->format));*/ #endif if (info_data->length==0) { - add_assoc_null(tmpi, name); + add_assoc_null(&tmpi, name); } else { switch (info_data->format) { default: @@ -1981,9 +1980,9 @@ static void add_assoc_image_info(zval *value, int sub_array, image_info_type *im case TAG_FMT_SBYTE: case TAG_FMT_UNDEFINED: if (!info_value->s) { - add_assoc_stringl(tmpi, name, "", 0); + add_assoc_stringl(&tmpi, name, "", 0); } else { - add_assoc_stringl(tmpi, name, info_value->s, info_data->length); + add_assoc_stringl(&tmpi, name, info_value->s, info_data->length); } break; @@ -1992,9 +1991,9 @@ static void add_assoc_image_info(zval *value, int sub_array, image_info_type *im val = ""; } if (section_index==SECTION_COMMENT) { - add_index_string(tmpi, idx++, val); + add_index_string(&tmpi, idx++, val); } else { - add_assoc_string(tmpi, name, val); + add_assoc_string(&tmpi, name, val); } break; @@ -2010,9 +2009,7 @@ static void add_assoc_image_info(zval *value, int sub_array, image_info_type *im case TAG_FMT_SLONG: /* now the rest, first see if it becomes an array */ if ((l = info_data->length) > 1) { - array = NULL; - MAKE_STD_ZVAL(array); - array_init(array); + array_init(&array); } for(ap=0; ap<l; ap++) { if (l>1) { @@ -2023,25 +2020,25 @@ static void add_assoc_image_info(zval *value, int sub_array, image_info_type *im if (l>1) { info_value = &info_data->value; for (b=0;b<l;b++) { - add_index_long(array, b, (int)(info_value->s[b])); + add_index_long(&array, b, (int)(info_value->s[b])); } break; } case TAG_FMT_USHORT: case TAG_FMT_ULONG: if (l==1) { - add_assoc_long(tmpi, name, (int)info_value->u); + add_assoc_long(&tmpi, name, (int)info_value->u); } else { - add_index_long(array, ap, (int)info_value->u); + add_index_long(&array, ap, (int)info_value->u); } break; case TAG_FMT_URATIONAL: snprintf(buffer, sizeof(buffer), "%i/%i", info_value->ur.num, info_value->ur.den); if (l==1) { - add_assoc_string(tmpi, name, buffer); + add_assoc_string(&tmpi, name, buffer); } else { - add_index_string(array, ap, buffer); + add_index_string(&array, ap, buffer); } break; @@ -2049,55 +2046,55 @@ static void add_assoc_image_info(zval *value, int sub_array, image_info_type *im if (l>1) { info_value = &info_data->value; for (b=0;b<l;b++) { - add_index_long(array, ap, (int)info_value->s[b]); + add_index_long(&array, ap, (int)info_value->s[b]); } break; } case TAG_FMT_SSHORT: case TAG_FMT_SLONG: if (l==1) { - add_assoc_long(tmpi, name, info_value->i); + add_assoc_long(&tmpi, name, info_value->i); } else { - add_index_long(array, ap, info_value->i); + add_index_long(&array, ap, info_value->i); } break; case TAG_FMT_SRATIONAL: snprintf(buffer, sizeof(buffer), "%i/%i", info_value->sr.num, info_value->sr.den); if (l==1) { - add_assoc_string(tmpi, name, buffer); + add_assoc_string(&tmpi, name, buffer); } else { - add_index_string(array, ap, buffer); + add_index_string(&array, ap, buffer); } break; case TAG_FMT_SINGLE: if (l==1) { - add_assoc_double(tmpi, name, info_value->f); + add_assoc_double(&tmpi, name, info_value->f); } else { - add_index_double(array, ap, info_value->f); + add_index_double(&array, ap, info_value->f); } break; case TAG_FMT_DOUBLE: if (l==1) { - add_assoc_double(tmpi, name, info_value->d); + add_assoc_double(&tmpi, name, info_value->d); } else { - add_index_double(array, ap, info_value->d); + add_index_double(&array, ap, info_value->d); } break; } info_value = &info_data->value.list[ap]; } if (l>1) { - add_assoc_zval(tmpi, name, array); + add_assoc_zval(&tmpi, name, &array); } break; } } } if (sub_array) { - add_assoc_zval(value, exif_get_sectionname(section_index), tmpi); + add_assoc_zval(value, exif_get_sectionname(section_index), &tmpi); } } } @@ -2350,7 +2347,7 @@ PHP_FUNCTION(exif_tagname) RETURN_FALSE; } - RETURN_STRING(szTemp, 1) + RETURN_STRING(szTemp) } /* }}} */ @@ -3851,7 +3848,8 @@ static int exif_read_file(image_info_type *ImageInfo, char *FileName, int read_t { int ret; struct stat st; - + zend_string *base; + /* Start with an empty image information structure. */ memset(ImageInfo, 0, sizeof(*ImageInfo)); @@ -3884,17 +3882,19 @@ static int exif_read_file(image_info_type *ImageInfo, char *FileName, int read_t } } - php_basename(FileName, strlen(FileName), NULL, 0, &(ImageInfo->FileName), NULL TSRMLS_CC); + base = php_basename(FileName, strlen(FileName), NULL, 0 TSRMLS_CC); + ImageInfo->FileName = estrndup(base->val, base->len); + STR_RELEASE(base); ImageInfo->read_thumbnail = read_thumbnail; ImageInfo->read_all = read_all; ImageInfo->Thumbnail.filetype = IMAGE_FILETYPE_UNKNOWN; - ImageInfo->encode_unicode = safe_estrdup(EXIF_G(encode_unicode)); - ImageInfo->decode_unicode_be = safe_estrdup(EXIF_G(decode_unicode_be)); - ImageInfo->decode_unicode_le = safe_estrdup(EXIF_G(decode_unicode_le)); - ImageInfo->encode_jis = safe_estrdup(EXIF_G(encode_jis)); - ImageInfo->decode_jis_be = safe_estrdup(EXIF_G(decode_jis_be)); - ImageInfo->decode_jis_le = safe_estrdup(EXIF_G(decode_jis_le)); + ImageInfo->encode_unicode = estrdup(EXIF_G(encode_unicode)); + ImageInfo->decode_unicode_be = estrdup(EXIF_G(decode_unicode_be)); + ImageInfo->decode_unicode_le = estrdup(EXIF_G(decode_unicode_le)); + ImageInfo->encode_jis = estrdup(EXIF_G(encode_jis)); + ImageInfo->decode_jis_be = estrdup(EXIF_G(decode_jis_be)); + ImageInfo->decode_jis_le = estrdup(EXIF_G(decode_jis_le)); ImageInfo->ifd_nesting_level = 0; @@ -4122,7 +4122,7 @@ PHP_FUNCTION(exif_thumbnail) exif_error_docref(NULL EXIFERR_CC, &ImageInfo, E_NOTICE, "Returning thumbnail(%d)", ImageInfo.Thumbnail.size); #endif - ZVAL_STRINGL(return_value, ImageInfo.Thumbnail.data, ImageInfo.Thumbnail.size, 1); + ZVAL_STRINGL(return_value, ImageInfo.Thumbnail.data, ImageInfo.Thumbnail.size); if (arg_c >= 3) { if (!ImageInfo.Thumbnail.width || !ImageInfo.Thumbnail.height) { exif_scan_thumbnail(&ImageInfo TSRMLS_CC); |