libcvd-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libcvd-members] libcvd/pnm_src bmp.cxx


From: Edward Rosten
Subject: [libcvd-members] libcvd/pnm_src bmp.cxx
Date: Tue, 12 Jul 2011 12:52:13 +0000

CVSROOT:        /cvsroot/libcvd
Module name:    libcvd
Changes by:     Edward Rosten <edrosten>        11/07/12 12:52:12

Modified files:
        pnm_src        : bmp.cxx 

Log message:
        Fix to remove multiple istream::get()'s in a multiple statement because
        the order of evaluation is not defined. This shows up in VS2010, release
        mode only.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/pnm_src/bmp.cxx?cvsroot=libcvd&r1=1.2&r2=1.3

Patches:
Index: bmp.cxx
===================================================================
RCS file: /cvsroot/libcvd/libcvd/pnm_src/bmp.cxx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- bmp.cxx     15 May 2008 22:54:12 -0000      1.2
+++ bmp.cxx     12 Jul 2011 12:52:12 -0000      1.3
@@ -72,7 +72,12 @@
        inline  unsigned long  read_u4(istream& i)
        {
                //Data is little endian:
-               unsigned long r =  i.get() | (i.get() << 8) | (i.get() << 16) | 
(i.get() << 12);
+               //unsigned long r =  i.get() | (i.get() << 8) | (i.get() << 16) 
| (i.get() << 24 );
+               int a = i.get();
+               int b = i.get();
+               int c = i.get();
+               int d = i.get();
+               unsigned long r = a | (b << 8) | (c<<16) | (d << 24);
                if(i.eof())
                        throw(Exceptions::Image_IO::MalformedImage("EOF in 
header."));
 
@@ -82,7 +87,10 @@
        inline  unsigned long  read_u2(istream& i)
        {
                //Data is little endian:
-               unsigned long r =  i.get() | (i.get() << 8);
+               //unsigned long r =  i.get() | (i.get() << 8);
+               int a = i.get();
+               int b = i.get();
+               unsigned long r = a | (b << 8);
                if(i.eof())
                        throw(Exceptions::Image_IO::MalformedImage("EOF in 
header."));
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]