|
|
@ -18,8 +18,7 @@ void add_mem_entry(mem_map_t * memmap_p, uint32 offset, uint32 count, memtype_t |
|
|
|
assert(0 < memmap.max_entries); |
|
|
|
assert(memmap.count < memmap.max_entries); |
|
|
|
assert(type < mt_END_marker); |
|
|
|
mem_map_entry_t * memmap_it_p = memmap.base_p; |
|
|
|
memmap_it_p = memmap.base_p + memmap.count; |
|
|
|
mem_map_entry_t * memmap_it_p = memmap.base_p + memmap.count; |
|
|
|
memmap_it_p->offset=offset; |
|
|
|
memmap_it_p->count=count; |
|
|
|
memmap_it_p->mem_type=type; |
|
|
@ -85,7 +84,7 @@ mem_map_t * scan_mem_map(ctiff_t * ctif) { |
|
|
|
|
|
|
|
if (tag == TIFFTAG_STRIPOFFSETS) { |
|
|
|
if (ifd_entry.value_or_offset == is_offset) { |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8,4,mt_ifd_offset_to_standardized_value ); |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8,4,mt_ifd_offset_to_standardized_value ); |
|
|
|
add_mem_entry( &memmap, offset, ((uint32) count)*datasize, mt_ifd_offset_to_stripoffsets ); |
|
|
|
} else if (ifd_entry.value_or_offset==is_value) { |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_embedded_standardized_value ); |
|
|
@ -176,22 +175,22 @@ mem_map_t * scan_mem_map(ctiff_t * ctif) { |
|
|
|
|
|
|
|
} else if (ifd_entry.value_or_offset==is_offset) { /* offset */ |
|
|
|
if (tag < 32768) { /* standard tag */ |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_offset_to_standardized_value ); |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_offset_to_standardized_value ); |
|
|
|
add_mem_entry( &memmap, offset, ((uint32) count)*datasize, mt_standardized_value ); |
|
|
|
} else if (tag < 65000) { /* registered tag */ |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_offset_to_registered_value ); |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_offset_to_registered_value ); |
|
|
|
add_mem_entry( &memmap, offset, ((uint32) count)*datasize, mt_registered_value ); |
|
|
|
} else { /* private tag */ |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_offset_to_private_value ); |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_offset_to_private_value ); |
|
|
|
add_mem_entry( &memmap, offset, ((uint32) count)*datasize, mt_private_value ); |
|
|
|
} |
|
|
|
} else if (ifd_entry.value_or_offset==is_value) { /* embedded value */ |
|
|
|
if (tag < 32768) { /* standard tag */ |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_embedded_standardized_value ); |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_embedded_standardized_value ); |
|
|
|
} else if (tag < 65000) { /* registered tag */ |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_embedded_registered_value ); |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_embedded_registered_value ); |
|
|
|
} else { /* private tag */ |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_embedded_private_value ); |
|
|
|
add_mem_entry( &memmap, ifdbase+(tagidx*12)+8, 4,mt_ifd_embedded_private_value ); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|