[Top][All Lists]
[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."));
| [Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libcvd-members] libcvd/pnm_src bmp.cxx,
Edward Rosten <=