< prev index next >

src/java.base/share/native/libjimage/imageDecompressor.cpp

Print this page
rev 16214 : 8170663: Fix minor issues in corelib and servicabilty coding.
Reviewed-by: dsamersoff, dholmes
Contributed-by: David CARLIER <devnexen@gmail.com>, goetz.lindenmaier@sap.com


 164         has_header = _header._magic == ResourceHeader::resource_header_magic;
 165         if (has_header) {
 166             // decompressed_resource array contains the result of decompression
 167             decompressed_resource = new u1[(size_t) _header._uncompressed_size];
 168             // Retrieve the decompressor name
 169             const char* decompressor_name = strings->get(_header._decompressor_name_offset);
 170             assert(decompressor_name && "image decompressor not found");
 171             // Retrieve the decompressor instance
 172             ImageDecompressor* decompressor = get_decompressor(decompressor_name);
 173             assert(decompressor && "image decompressor not found");
 174             // Ask the decompressor to decompress the compressed content
 175             decompressor->decompress_resource(compressed_resource, decompressed_resource,
 176                 &_header, strings);
 177             if (compressed_resource_base != compressed) {
 178                 delete[] compressed_resource_base;
 179             }
 180             compressed_resource = decompressed_resource;
 181         }
 182     } while (has_header);
 183     memcpy(uncompressed, decompressed_resource, (size_t) uncompressed_size);
 184     delete decompressed_resource;
 185 }
 186 
 187 // Zip decompressor
 188 
 189 void ZipDecompressor::decompress_resource(u1* data, u1* uncompressed,
 190                 ResourceHeader* header, const ImageStrings* strings) {
 191     char* msg = NULL;
 192     jboolean res = ZipDecompressor::decompress(data, header->_size, uncompressed,
 193                     header->_uncompressed_size, &msg);
 194     assert(res && "decompression failed");
 195 }
 196 
 197 jboolean ZipDecompressor::decompress(void *in, u8 inSize, void *out, u8 outSize, char **pmsg) {
 198     return (*ZipInflateFully)(in, inSize, out, outSize, pmsg);
 199 }
 200 
 201 // END Zip Decompressor
 202 
 203 // Shared String decompressor
 204 




 164         has_header = _header._magic == ResourceHeader::resource_header_magic;
 165         if (has_header) {
 166             // decompressed_resource array contains the result of decompression
 167             decompressed_resource = new u1[(size_t) _header._uncompressed_size];
 168             // Retrieve the decompressor name
 169             const char* decompressor_name = strings->get(_header._decompressor_name_offset);
 170             assert(decompressor_name && "image decompressor not found");
 171             // Retrieve the decompressor instance
 172             ImageDecompressor* decompressor = get_decompressor(decompressor_name);
 173             assert(decompressor && "image decompressor not found");
 174             // Ask the decompressor to decompress the compressed content
 175             decompressor->decompress_resource(compressed_resource, decompressed_resource,
 176                 &_header, strings);
 177             if (compressed_resource_base != compressed) {
 178                 delete[] compressed_resource_base;
 179             }
 180             compressed_resource = decompressed_resource;
 181         }
 182     } while (has_header);
 183     memcpy(uncompressed, decompressed_resource, (size_t) uncompressed_size);
 184     delete[] decompressed_resource;
 185 }
 186 
 187 // Zip decompressor
 188 
 189 void ZipDecompressor::decompress_resource(u1* data, u1* uncompressed,
 190                 ResourceHeader* header, const ImageStrings* strings) {
 191     char* msg = NULL;
 192     jboolean res = ZipDecompressor::decompress(data, header->_size, uncompressed,
 193                     header->_uncompressed_size, &msg);
 194     assert(res && "decompression failed");
 195 }
 196 
 197 jboolean ZipDecompressor::decompress(void *in, u8 inSize, void *out, u8 outSize, char **pmsg) {
 198     return (*ZipInflateFully)(in, inSize, out, outSize, pmsg);
 199 }
 200 
 201 // END Zip Decompressor
 202 
 203 // Shared String decompressor
 204 


< prev index next >