From: Marcus Boerger Date: Tue, 2 Jul 2002 22:38:37 +0000 (+0000) Subject: -fix datatypes for some vriables X-Git-Tag: xmlrpc_epi_0_51_merge_pt~41 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b634ec9e300552ab9a56178949023842610da909;p=php -fix datatypes for some vriables -fix comment for function exif_process_CME -force return parameters to be passed by reference #this should kill warnings on win systems as found by Edin --- diff --git a/ext/exif/exif.c b/ext/exif/exif.c index f6678cc830..4a467b1e99 100644 --- a/ext/exif/exif.c +++ b/ext/exif/exif.c @@ -95,13 +95,15 @@ typedef unsigned char uchar; #define EFREE_IF(ptr) if (ptr) efree(ptr) +static unsigned char exif_thumbnail_force_ref[] = {2, BYREF_NONE, BYREF_FORCE_REST}; + /* {{{ exif_functions[] */ function_entry exif_functions[] = { PHP_FE(exif_read_data, NULL) PHP_FALIAS(read_exif_data, exif_read_data, NULL) PHP_FE(exif_tagname, NULL) - PHP_FE(exif_thumbnail, NULL) + PHP_FE(exif_thumbnail, exif_thumbnail_force_ref) PHP_FE(exif_imagetype, NULL) {NULL, NULL, NULL} }; @@ -812,10 +814,10 @@ static size_t exif_convert_any_to_int(void *value, int format, int motorola_inte /* Not sure if this is correct (never seen float used in Exif format) */ case TAG_FMT_SINGLE: php_error(E_NOTICE, "%s(): Found value of type single", get_active_function_name(TSRMLS_C)); - return *(float *)value; + return (size_t)*(float *)value; case TAG_FMT_DOUBLE: php_error(E_NOTICE, "%s(): Found value of type double", get_active_function_name(TSRMLS_C)); - return *(double *)value; + return (size_t)*(double *)value; } return 0; } @@ -1118,7 +1120,7 @@ static int exif_file_sections_free(image_info_type *ImageInfo) /* {{{ exif_iif_add_value Add a value to image_info */ -static void exif_iif_add_value(image_info_type *image_info, int section_index, char *name, int tag, int format, int length, void* value, int motorola_intel TSRMLS_DC) +static void exif_iif_add_value(image_info_type *image_info, int section_index, char *name, int tag, int format, size_t length, void* value, int motorola_intel TSRMLS_DC) { int index; image_info_value *info_value; @@ -1247,7 +1249,7 @@ static void exif_iif_add_value(image_info_type *image_info, int section_index, c case TAG_FMT_SINGLE: php_error(E_WARNING, "%s(): Found value of type single", get_active_function_name(TSRMLS_C)); - info_value->f = (double)*(float *)value; + info_value->f = *(float *)value; case TAG_FMT_DOUBLE: php_error(E_WARNING, "%s(): Found value of type double", get_active_function_name(TSRMLS_C)); @@ -1264,7 +1266,7 @@ static void exif_iif_add_value(image_info_type *image_info, int section_index, c /* {{{ exif_iif_add_tag Add a tag from IFD to image_info */ -static void exif_iif_add_tag(image_info_type *image_info, int section_index, char *name, int tag, int format, int length, void* value TSRMLS_DC) +static void exif_iif_add_tag(image_info_type *image_info, int section_index, char *name, int tag, int format, size_t length, void* value TSRMLS_DC) { exif_iif_add_value(image_info, section_index, name, tag, format, length, value, image_info->motorola_intel TSRMLS_CC); } @@ -1707,19 +1709,19 @@ static void add_assoc_image_info(pval *value, int sub_array, image_info_type *im We want to print out the marker contents as legible text; we must guard against random junk and varying newline representations. */ -static void exif_process_COM (image_info_type *image_info, uchar *value, int length TSRMLS_DC) +static void exif_process_COM (image_info_type *image_info, uchar *value, size_t length TSRMLS_DC) { exif_iif_add_tag(image_info, SECTION_COMMENT, "Comment", TAG_COMPUTED_VALUE, TAG_FMT_STRING, length-2, value+2 TSRMLS_CC); } /* }}} */ -/* {{{ exif_process_COM - Process a COM marker. +/* {{{ exif_process_CME + Process a CME marker. We want to print out the marker contents as legible text; we must guard against random junk and varying newline representations. */ #ifdef EXIF_JPEG2000 -static void exif_process_CME (image_info_type *image_info, uchar *value, int length TSRMLS_DC) +static void exif_process_CME (image_info_type *image_info, uchar *value, size_t length TSRMLS_DC) { if (length>3) { switch(value[2]) { @@ -2221,7 +2223,7 @@ static int exif_process_unicode(image_info_type *ImageInfo, xp_field_type *xp_fi * Process one of the nested IFDs directories. */ static int exif_process_IFD_TAG(image_info_type *ImageInfo, char *dir_entry, char *offset_base, size_t IFDlength, int section_index, int ReadNextIFD TSRMLS_DC) { - int l; + size_t length; int tag, format, components; char *value_ptr, tagname[64], cbuf[32], *outside=NULL; size_t byte_count, offset_val, fpos, fgot; @@ -2346,16 +2348,16 @@ static int exif_process_IFD_TAG(image_info_type *ImageInfo, char *dir_entry, cha switch(tag) { case TAG_COPYRIGHT: /* check for " NUL NUL" */ - if (byte_count>1 && (l=php_strnlen(value_ptr, byte_count)) > 0) { - if (l1 && (length=php_strnlen(value_ptr, byte_count)) > 0) { + if (lengthCopyrightPhotographer = estrdup(value_ptr); - ImageInfo->CopyrightEditor = estrdup(value_ptr+l+1); - ImageInfo->Copyright = emalloc(strlen(value_ptr)+strlen(value_ptr+l+1)+3); + ImageInfo->CopyrightEditor = estrdup(value_ptr+length+1); + ImageInfo->Copyright = emalloc(strlen(value_ptr)+strlen(value_ptr+length+1)+3); if (!ImageInfo->Copyright) { EXIF_ERRLOG_EALLOC } else { - sprintf(ImageInfo->Copyright, "%s, %s", value_ptr, value_ptr+l+1); + sprintf(ImageInfo->Copyright, "%s, %s", value_ptr, value_ptr+length+1); } /* format = TAG_FMT_UNDEFINED; this musn't be ASCII */ /* but we are not supposed to change this */ @@ -2364,7 +2366,7 @@ static int exif_process_IFD_TAG(image_info_type *ImageInfo, char *dir_entry, cha ImageInfo->Copyright = estrdup(value_ptr); } } - break; + break; case TAG_USERCOMMENT: ImageInfo->UserCommentLength = exif_process_user_comment(ImageInfo, &(ImageInfo->UserComment), &(ImageInfo->UserCommentEncoding), value_ptr, byte_count TSRMLS_CC); @@ -2615,9 +2617,9 @@ static void exif_process_APP1(image_info_type *ImageInfo, char *CharBuf, unsigne /* {{{ exif_process_APP12 Process an JPEG APP12 block marker used by OLYMPUS */ -static void exif_process_APP12(image_info_type *ImageInfo, char *buffer, unsigned int length TSRMLS_DC) +static void exif_process_APP12(image_info_type *ImageInfo, char *buffer, size_t length TSRMLS_DC) { - int l1, l2=0; + size_t l1, l2=0; if ((l1 = php_strnlen(buffer+2, length-2)) > 0) { exif_iif_add_tag(ImageInfo, SECTION_APP12, "Company", TAG_NONE, TAG_FMT_STRING, l1, buffer+2 TSRMLS_CC);