Changeset 13518 for trunk/gsdl/packages
- Timestamp:
- 2006-12-15T12:19:11+13:00 (17 years ago)
- Location:
- trunk/gsdl/packages/isis-gdl
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/packages/isis-gdl/Compat.h
r6127 r13518 104 104 #define MoveMemory memmove 105 105 #define ZeroMemory(p,size) memset(p,0,size) 106 107 108 inline void fix_endianness(short int& x) 109 { 110 #if !defined(LITTLE_ENDIAN) 111 if (x < 0) { 112 unsigned short int ux = (unsigned short int) x; 113 x = (ux>>8) | 114 (ux<<8); 115 } 116 else { 117 x = (x>>8) | 118 (x<<8); 119 } 120 #endif 121 } 122 123 inline void fix_endianness(long int& x) 124 { 125 #if !defined(LITTLE_ENDIAN) 126 if (x < 0) { 127 unsigned long ux = (unsigned long) x; 128 x = (ux>>24) | 129 ((ux<<8) & 0x00FF0000) | 130 ((ux>>8) & 0x0000FF00) | 131 (ux<<24); 132 } 133 else { 134 x = (x>>24) | 135 ((x<<8) & 0x00FF0000) | 136 ((x>>8) & 0x0000FF00) | 137 (x<<24); 138 } 139 #endif 140 } -
trunk/gsdl/packages/isis-gdl/MFFile.h
r6127 r13518 250 250 251 251 ////////////////////////////// 252 252 253 253 inline void MfFile::ReadMfHdr() 254 254 // Reads the master file header record … … 257 257 TRACE(_T("\nsizeof(SMfHeader)=%d"), sizeof(SMfHeader)); 258 258 ::MoveMemory(&mfh_, buf_, sizeof(SMfHeader)); 259 260 fix_endianness(mfh_.ctlmfn_); 261 fix_endianness(mfh_.nxtmfn_); 262 fix_endianness(mfh_.nxtmfb_); 263 fix_endianness(mfh_.nxtmfp_); 264 fix_endianness(mfh_.mftype_); 265 fix_endianness(mfh_.reccnt_); 266 fix_endianness(mfh_.mfcxx1_); 267 fix_endianness(mfh_.mfcxx2_); 268 fix_endianness(mfh_.mfcxx3_); 259 269 } 260 270 … … 279 289 ReadBlk(buf_, 1L); 280 290 ::MoveMemory(&h, buf_, sizeof(SMfHeader)); 291 292 fix_endianness(h.ctlmfn_); 293 fix_endianness(h.nxtmfn_); 294 fix_endianness(h.nxtmfb_); 295 fix_endianness(h.nxtmfp_); 296 fix_endianness(h.mftype_); 297 fix_endianness(h.reccnt_); 298 fix_endianness(h.mfcxx1_); 299 fix_endianness(h.mfcxx2_); 300 fix_endianness(h.mfcxx3_); 281 301 } 282 302 -
trunk/gsdl/packages/isis-gdl/Master.cpp
r7135 r13518 161 161 s.read((char *) &leader_directory.status_, sizeof(ISIS_INT)); 162 162 163 fix_endianness(leader_directory.mfn_); 164 fix_endianness(leader_directory.mfrl_); 165 fix_endianness(leader_directory.mfbwb_); 166 fix_endianness(leader_directory.mfbwp_); 167 fix_endianness(leader_directory.base_); 168 fix_endianness(leader_directory.nvf_); 169 fix_endianness(leader_directory.status_); 170 163 171 if (!leader_directory.dir_.empty()) 164 172 leader_directory.dir_.clear(); … … 174 182 DirEntry de; 175 183 s.read((char *) &de, GetDirEntrySize()); 184 fix_endianness(de.tag_); 185 fix_endianness(de.pos_); 186 fix_endianness(de.len_); 176 187 // Don't check integrity of directory entries here 177 188 leader_directory.dir_.push_back(de); … … 714 725 leader_directory_.mfn_ = *(reinterpret_cast<ISIS_LONG*>((char *) record_.c_str())); 715 726 leader_directory_.mfrl_ = *(reinterpret_cast<ISIS_INT*> ((char *)(record_.c_str()+sizeof(ISIS_LONG)))); 727 fix_endianness(leader_directory_.mfn_); 728 fix_endianness(leader_directory_.mfrl_); 716 729 if (leader_directory_.mfrl_ < 0) leader_directory_.mfrl_ = -leader_directory_.mfrl_; // mfrl can be negative!!!! 717 730 -
trunk/gsdl/packages/isis-gdl/XRFFile.cpp
r12714 r13518 151 151 void XrfFile::UnPack(void) 152 152 { 153 fix_endianness(xrf_->xrfpos_); 154 153 155 xrfa_->xrfpos_ = xrf_->xrfpos_; 154 156 if (xrfa_->xrfpos_ < 0) … … 163 165 { 164 166 long j = xrf_->xrftiv_[i]; // Packed value 167 fix_endianness(j); 165 168 bool b = (j < 0); 166 169 if (b)
Note:
See TracChangeset
for help on using the changeset viewer.