Ignore:
Timestamp:
2016-06-23T14:17:55+02:00 (9 years ago)
Author:
malcolmh
Message:

updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/seachart/src/s57/S57dat.java

    r31846 r32380  
    224224                } else {
    225225                        int f = Math.abs(conv.bin);
    226                         if (f < 8) {
     226                        if (f < 5) {
    227227                                long val = buffer[offset + --f];
    228228                                if (conv.bin > 0)
     
    253253                                return val;
    254254                        } else {
    255                                 f /= 8;
    256                                 long val = 0;
    257                                 for (int i = 0; i < f; i++) {
     255                                if (f == 5) {
     256                                        long val = buffer[offset++] & 0xff;
     257                                        f--;
     258                                        while (f > 0) {
     259                                                val = (val << 8) + (buffer[offset + --f] & 0xff);
     260                                        }
     261                                        offset += 4;
     262                                        return val;
     263                                } else {
     264                                        long val = buffer[offset++] & 0xff;
    258265                                        val = (val << 8) + (buffer[offset++] & 0xff);
    259                                 }
    260                                 return val;
     266                                        f = 4;
     267                                        while (f > 0) {
     268                                                val = (val << 8) + (buffer[offset + --f] & 0xff);
     269                                        }
     270                                        offset += 4;
     271                                        f = 2;
     272                                        while (f > 0) {
     273                                                val = (val << 8) + (buffer[offset + --f] & 0xff);
     274                                        }
     275                                        offset += 2;
     276                                        return val;
     277                                }
    261278                        }
    262279                }
Note: See TracChangeset for help on using the changeset viewer.