--- parser3/src/classes/image.C 2008/09/04 09:38:09 1.119 +++ parser3/src/classes/image.C 2009/06/14 00:33:36 1.124 @@ -1,11 +1,11 @@ /** @file Parser: @b image parser class. - Copyright(c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com) + Copyright(c) 2001-2009 ArtLebedev Group (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char * const IDENT_IMAGE_C="$Date: 2008/09/04 09:38:09 $"; +static const char * const IDENT_IMAGE_C="$Date: 2009/06/14 00:33:36 $"; /* jpegsize: gets the width and height (in pixels) of a jpeg file @@ -33,7 +33,7 @@ static const char * const IDENT_IMAGE_C= class MImage: public Methoded { public: // VStateless_class - Value* create_new_value(Pool&, HashStringValue&) { return new VImage(); } + Value* create_new_value(Pool&, HashStringValue*) { return new VImage(); } public: MImage(); @@ -453,9 +453,9 @@ static Value* parse_IFD_entry_formatted_ } /* case 11: // single float - todo + @todo case 12: // double float - todo + @todo */ }; @@ -484,9 +484,7 @@ static Value* parse_IFD_entry_formatted_ catch(...) { /*ignore bad date times*/ } } - if(const char* premature_zero_pos=(const char* )memchr(cstr, 0, length)) - length=premature_zero_pos-cstr; - return new VString(*new String(cstr, length, true/*tainted*/)); + return new VString(*new String(cstr, String::L_TAINTED)); } if(components_count==1) @@ -535,7 +533,7 @@ static Value* parse_IFD_entry_value( // You can get the total data byte length by multiplies // a 'bytes/components' value (see above chart) by number of components stored 'NNNNNNNN' area uint components_count=endian_to_uint(is_big, entry.components_count); - size_t value_size=component_size*components_count; + uint value_size=component_size*components_count; // If its size is over 4bytes, 'DDDDDDDD' contains the offset to data stored address Value* result;