Mercurial > hg > release > icedtea6-1.2
changeset 724:3e06a1aee098 cacao
2008-02-26 Lillian Angel <langel@redhat.com>
* Makefile.am
(FREETYPE2_INC_DIR): Removed.
(FREETYPE2_HEADERS): New var.
(FT2_LIB): New var.
* patches/icedtea-headers.patch: Added freetype patches.
* Makefile.in: Regenerated.
author | Lillian Angel <langel@redhat.com> |
---|---|
date | Tue, 26 Feb 2008 12:47:07 -0500 |
parents | 385ef9e9c25f |
children | d7e0eb3e85cd |
files | ChangeLog Makefile.am patches/icedtea-headers.patch patches/icedtea-libraries.patch |
diffstat | 4 files changed, 60 insertions(+), 811 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Tue Feb 26 11:04:51 2008 -0500 +++ b/ChangeLog Tue Feb 26 12:47:07 2008 -0500 @@ -1,3 +1,12 @@ +2008-02-26 Lillian Angel <langel@redhat.com> + + * Makefile.am + (FREETYPE2_INC_DIR): Removed. + (FREETYPE2_HEADERS): New var. + (FT2_LIB): New var. + * patches/icedtea-headers.patch: Added freetype patches. + * Makefile.in: Regenerated. + 2008-02-26 Lillian Angel <langel@redhat.com> * patches/icedtea-libraries.patch: Fixed dlopen calls. No longer
--- a/Makefile.am Tue Feb 26 11:04:51 2008 -0500 +++ b/Makefile.am Tue Feb 26 12:47:07 2008 -0500 @@ -73,10 +73,11 @@ "ENDORSED=-Djava.endorsed.dirs=$(ICEDTEA_ENDORSED_DIR)" \ "CLASSPATH=" \ "LD_LIBRARY_PATH=" \ - "FREETYPE2_INC_DIR=$(FREETYPE2_INC_DIR)" \ "ICEDTEA_CORE_BUILD=$(ICEDTEA_CORE_BUILD)" \ "LIBFFI_CFLAGS=$(LIBFFI_CFLAGS)" \ - "LIBFFI_LIBS=$(LIBFFI_LIBS)" + "LIBFFI_LIBS=$(LIBFFI_LIBS)" \ + "FREETYPE2_HEADERS=$(FREETYPE2_CFLAGS)" \ + "FT2_LIB=$(FREETYPE2_LIBS)" if WITH_CACAO ICEDTEA_ENV += \ @@ -116,10 +117,11 @@ "CLASSPATH=" \ "LD_LIBRARY_PATH=" \ "GENSRCDIR=$(abs_top_srcdir)/generated" \ - "FREETYPE2_INC_DIR=$(FREETYPE2_INC_DIR)" \ "ICEDTEA_CORE_BUILD=$(ICEDTEA_CORE_BUILD)" \ "LIBFFI_CFLAGS=$(LIBFFI_CFLAGS)" \ - "LIBFFI_LIBS=$(LIBFFI_LIBS)" + "LIBFFI_LIBS=$(LIBFFI_LIBS)" \ + "FREETYPE2_HEADERS=$(FREETYPE2_CFLAGS)" \ + "FT2_LIB=$(FREETYPE2_LIBS)" if WITH_CACAO ICEDTEA_ENV_ECJ += \
--- a/patches/icedtea-headers.patch Tue Feb 26 11:04:51 2008 -0500 +++ b/patches/icedtea-headers.patch Tue Feb 26 12:47:07 2008 -0500 @@ -1,10 +1,50 @@ ---- ../openjdk-b20/openjdk/hotspot/build/linux/makefiles/jvmti.make 2007-09-13 03:46:41.000000000 -0400 -+++ openjdk/hotspot/build/linux/makefiles/jvmti.make 2007-09-14 12:03:41.000000000 -0400 +--- oldopenjdk/hotspot/build/linux/makefiles/jvmti.make 2008-02-12 04:14:13.000000000 -0500 ++++ openjdk/hotspot/build/linux/makefiles/jvmti.make 2008-02-26 11:34:28.000000000 -0500 @@ -57,7 +57,7 @@ - + JvmtiGeneratedFiles = $(JvmtiGeneratedNames:%=$(JvmtiOutDir)/%) - + -XSLT = $(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiGen +XSLT = $(QUIETLY) $(REMOTE) $(RUN.JAVA) $(ENDORSED) -classpath $(JvmtiOutDir) jvmtiGen - + .PHONY: all jvmtidocs clean cleanall + +--- openjdkold/jdk/make/tools/freetypecheck/Makefile 2008-01-04 18:20:30.000000000 -0500 ++++ openjdk/jdk/make/tools/freetypecheck/Makefile 2008-02-26 11:21:34.000000000 -0500 +@@ -54,7 +54,7 @@ + ifeq ($(PLATFORM), solaris) + FT_OPTIONS += -R $(FT_LIB) -lfreetype + else #linux +- FT_OPTIONS += -Wl,-rpath -Wl,$(FT_LIB) -lfreetype ++ FT_OPTIONS += -Wl,-rpath -Wl,$(FT_LIB) $(FT2_LIB) + endif + endif + +--- openjdkold/jdk/make/common/Defs.gmk 2008-01-04 18:20:29.000000000 -0500 ++++ openjdk/jdk/make/common/Defs.gmk 2008-02-26 11:21:49.000000000 -0500 +@@ -225,7 +225,7 @@ + ifeq ($(PLATFORM), windows) + FREETYPE_LIB = $(FREETYPE_LIB_PATH)/freetype.lib + else +- FREETYPE_LIB = -L$(FREETYPE_LIB_PATH) -lfreetype ++ FREETYPE_LIB = -L$(FREETYPE_LIB_PATH) $(FT2_LIB) + endif + + ifdef ALT_FREETYPE_HEADERS_PATH +--- oldopenjdk/jdk/make/sun/font/Makefile 2008-01-04 18:20:30.000000000 -0500 ++++ openjdk/jdk/make/sun/font/Makefile 2008-02-26 12:12:54.000000000 -0500 +@@ -161,10 +161,13 @@ + CFLAGS += -DHEADLESS + CXXFLAGS += -DHEADLESS + ++FREETYPE_HEADERS=$(shell $(ECHO) \"$(FREETYPE2_HEADERS)\" | grep -o ^.*[a\-z]) ++ + ifndef OPENJDK + CPPFLAGS += -I$(CLOSED_SRC)/share/native/$(PKGDIR)/t2k + else +- CPPFLAGS += -I$(FREETYPE_HEADERS_PATH) -I$(FREETYPE_HEADERS_PATH)/freetype2 ++ CPPFLAGS += $(FREETYPE_HEADERS) $(FREETYPE_HEADERS)/freetype2 \ ++ -I$(FREETYPE_HEADERS_PATH) -I$(FREETYPE_HEADERS_PATH)/freetype2 + OTHER_LDLIBS += $(FREETYPE_LIB) + endif +
--- a/patches/icedtea-libraries.patch Tue Feb 26 11:04:51 2008 -0500 +++ b/patches/icedtea-libraries.patch Tue Feb 26 12:47:07 2008 -0500 @@ -24682,263 +24682,6 @@ endif endif #LINUX endif #PLATFORM ---- origopenjdk/jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c 2008-01-04 18:21:02.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c 2008-01-13 23:54:15.000000000 -0500 -@@ -45,7 +45,9 @@ - #undef boolean - #undef FAR - #include <jpeglib.h> --#include "jerror.h" -+#include <jerror.h> -+#include <dlfcn.h> -+ - - /* The method IDs we cache. Note that the last two belongs to the - * java.io.InputStream class. -@@ -56,6 +58,32 @@ - static jmethodID InputStream_readID; - static jmethodID InputStream_availableID; - -+typedef struct jpeg_error_mgr * (*fn_jpegstderror)(struct jpeg_error_mgr *); -+typedef void (*fn_jpegcreatedecompress)(j_decompress_ptr, int, size_t); -+typedef boolean (*fn_jpegresynctorestart)(j_decompress_ptr, int); -+typedef JDIMENSION (*fn_jpegreadscanlines)(j_decompress_ptr, JSAMPARRAY, JDIMENSION); -+typedef boolean (*fn_jpegfinishoutput)(j_decompress_ptr); -+typedef int (*fn_jpegreadheader)(j_decompress_ptr, boolean); -+typedef boolean (*fn_jpegstartdecompress)(j_decompress_ptr); -+typedef boolean (*fn_jpeghasmultiplescans)(j_decompress_ptr); -+typedef void (*fn_jpegdestroydecompress)(j_decompress_ptr); -+typedef int (*fn_jpegconsumeinput)(j_decompress_ptr); -+typedef boolean (*fn_jpegfinishdecompress)(j_decompress_ptr); -+typedef boolean (*fn_jpegstartoutput)(j_decompress_ptr, int); -+ -+fn_jpegstderror jpegstderror; -+fn_jpegstartoutput jpegstartoutput; -+fn_jpegfinishdecompress jpegfinishdecompress; -+fn_jpegconsumeinput jpegconsumeinput; -+fn_jpegdestroydecompress jpegdestroydecompress; -+fn_jpeghasmultiplescans jpeghasmultiplescans; -+fn_jpegstartdecompress jpegstartdecompress; -+fn_jpegreadheader jpegreadheader; -+fn_jpegfinishoutput jpegfinishoutput; -+fn_jpegreadscanlines jpegreadscanlines; -+fn_jpegresynctorestart jpegresynctorestart; -+fn_jpegcreatedecompress jpegcreatedecompress; -+ - /* Initialize the Java VM instance variable when the library is - first loaded */ - JavaVM *jvm; -@@ -462,6 +490,70 @@ - Java_sun_awt_image_JPEGImageDecoder_initIDs(JNIEnv *env, jclass cls, - jclass InputStreamClass) - { -+ void *handle = dlopen("/usr/lib/libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); -+ if (handle == NULL) -+ handle = dlopen("/usr/lib64/libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); -+ -+ jpegstderror = (fn_jpegstderror)dlsym(handle, "jpeg_std_error"); -+ if (jpegstderror == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegdestroydecompress = (fn_jpegdestroydecompress)dlsym(handle, "jpeg_destroy_decompress"); -+ if (jpegdestroydecompress == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegcreatedecompress = (fn_jpegcreatedecompress)dlsym(handle, "jpeg_CreateDecompress"); -+ if (jpegcreatedecompress == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegreadheader = (fn_jpegreadheader)dlsym(handle, "jpeg_read_header"); -+ if (jpegreadheader == NULL) { -+ dlclose(handle); -+ } -+ -+ jpeghasmultiplescans = (fn_jpeghasmultiplescans)dlsym(handle, "jpeg_has_multiple_scans"); -+ if (jpeghasmultiplescans == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegstartdecompress = (fn_jpegstartdecompress)dlsym(handle, "jpeg_start_decompress"); -+ if (jpegstartdecompress == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegconsumeinput = (fn_jpegconsumeinput)dlsym(handle, "jpeg_consume_input"); -+ if (jpegconsumeinput == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegstartoutput = (fn_jpegstartoutput)dlsym(handle, "jpeg_start_output"); -+ if (jpegstartoutput == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegfinishdecompress = (fn_jpegfinishdecompress)dlsym(handle, "jpeg_finish_decompress"); -+ if (jpegfinishdecompress == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegreadscanlines = (fn_jpegreadscanlines)dlsym(handle, "jpeg_read_scanlines"); -+ if (jpegreadscanlines == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegfinishoutput = (fn_jpegfinishoutput)dlsym(handle, "jpeg_finish_output"); -+ if (jpegfinishoutput == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegresynctorestart = (fn_jpegresynctorestart)dlsym(handle, "jpeg_resync_to_restart"); -+ if (jpegresynctorestart == NULL) { -+ dlclose(handle); -+ } -+ - sendHeaderInfoID = (*env)->GetMethodID(env, cls, "sendHeaderInfo", - "(IIZZZ)Z"); - sendPixelsByteID = (*env)->GetMethodID(env, cls, "sendPixels", "([BI)Z"); -@@ -519,7 +611,7 @@ - /* Step 1: allocate and initialize JPEG decompression object */ - - /* We set up the normal JPEG error routines, then override error_exit. */ -- cinfo.err = jpeg_std_error(&jerr.pub); -+ cinfo.err = jpegstderror(&jerr.pub); - jerr.pub.error_exit = sun_jpeg_error_exit; - - /* We need to setup our own print routines */ -@@ -530,7 +622,7 @@ - /* If we get here, the JPEG code has signaled an error. - * We need to clean up the JPEG object, close the input file, and return. - */ -- jpeg_destroy_decompress(&cinfo); -+ jpegdestroydecompress(&cinfo); - RELEASE_ARRAYS(env, &jsrc); - if (!(*env)->ExceptionOccurred(env)) { - char buffer[JMSG_LENGTH_MAX]; -@@ -541,7 +633,7 @@ - return; - } - /* Now we can initialize the JPEG decompression object. */ -- jpeg_create_decompress(&cinfo); -+ jpegcreatedecompress(&cinfo, JPEG_LIB_VERSION, (size_t) sizeof(struct jpeg_decompress_struct)); - - /* Step 2: specify data source (eg, a file) */ - -@@ -555,17 +647,17 @@ - jsrc.pub.init_source = sun_jpeg_init_source; - jsrc.pub.fill_input_buffer = sun_jpeg_fill_input_buffer; - jsrc.pub.skip_input_data = sun_jpeg_skip_input_data; -- jsrc.pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */ -+ jsrc.pub.resync_to_restart = jpegresynctorestart; /* use default method */ - jsrc.pub.term_source = sun_jpeg_term_source; - if (!GET_ARRAYS(env, &jsrc)) { -- jpeg_destroy_decompress(&cinfo); -+ jpegdestroydecompress(&cinfo); - return; - } - /* Step 3: read file parameters with jpeg_read_header() */ - -- (void) jpeg_read_header(&cinfo, TRUE); -+ (void) jpegreadheader(&cinfo, TRUE); - /* select buffered-image mode if it is a progressive JPEG only */ -- buffered_mode = cinfo.buffered_image = jpeg_has_multiple_scans(&cinfo); -+ buffered_mode = cinfo.buffered_image = jpeghasmultiplescans(&cinfo); - grayscale = (cinfo.out_color_space == JCS_GRAYSCALE); - #ifdef YCCALPHA - hasalpha = (cinfo.out_color_space == JCS_RGBA); -@@ -584,7 +676,7 @@ - grayscale, hasalpha, buffered_mode); - if ((*env)->ExceptionOccurred(env) || !ret) { - /* No more interest in this image... */ -- jpeg_destroy_decompress(&cinfo); -+ jpegdestroydecompress(&cinfo); - return; - } - /* Make a one-row-high sample array with enough room to expand to ints */ -@@ -595,7 +687,7 @@ - } - - if (jsrc.hOutputBuffer == 0 || !GET_ARRAYS(env, &jsrc)) { -- jpeg_destroy_decompress(&cinfo); -+ jpegdestroydecompress(&cinfo); - return; - } - -@@ -613,7 +705,7 @@ - - /* Step 5: Start decompressor */ - -- jpeg_start_decompress(&cinfo); -+ jpegstartdecompress(&cinfo); - - /* We may need to do some setup of our own at this point before reading - * the data. After jpeg_start_decompress() we have the correct scaled -@@ -638,28 +730,28 @@ - do { - sun_jpeg_fill_suspended_buffer(&cinfo); - jsrc.suspendable = TRUE; -- ret = jpeg_consume_input(&cinfo); -+ ret = jpegconsumeinput(&cinfo); - jsrc.suspendable = FALSE; - } while (ret != JPEG_SUSPENDED && ret != JPEG_REACHED_EOI); - if (ret == JPEG_REACHED_EOI) { - final_pass = TRUE; - cinfo.dct_method = JDCT_ISLOW; - } -- jpeg_start_output(&cinfo, cinfo.input_scan_number); -+ jpegstartoutput(&cinfo, cinfo.input_scan_number); - } - while (cinfo.output_scanline < cinfo.output_height) { - if (! final_pass) { - do { - sun_jpeg_fill_suspended_buffer(&cinfo); - jsrc.suspendable = TRUE; -- ret = jpeg_consume_input(&cinfo); -+ ret = jpegconsumeinput(&cinfo); - jsrc.suspendable = FALSE; - } while (ret != JPEG_SUSPENDED && ret != JPEG_REACHED_EOI); - if (ret == JPEG_REACHED_EOI) { - break; - } - } -- (void) jpeg_read_scanlines(&cinfo, (JSAMPARRAY) &(jsrc.outbuf), 1); -+ (void) jpegreadscanlines(&cinfo, (JSAMPARRAY) &(jsrc.outbuf), 1); - - if (grayscale) { - RELEASE_ARRAYS(env, &jsrc); -@@ -695,18 +787,18 @@ - if ((*env)->ExceptionOccurred(env) || !ret || - !GET_ARRAYS(env, &jsrc)) { - /* No more interest in this image... */ -- jpeg_destroy_decompress(&cinfo); -+ jpegdestroydecompress(&cinfo); - return; - } - } - if (buffered_mode) { -- jpeg_finish_output(&cinfo); -+ jpegfinishoutput(&cinfo); - } - } while (! final_pass); - - /* Step 7: Finish decompression */ - -- (void) jpeg_finish_decompress(&cinfo); -+ (void) jpegfinishdecompress(&cinfo); - /* We can ignore the return value since suspension is not possible - * with the stdio data source. - * (nor with the Java data source) -@@ -715,7 +807,7 @@ - /* Step 8: Release JPEG decompression object */ - - /* This is an important step since it will release a good deal of memory. */ -- jpeg_destroy_decompress(&cinfo); -+ jpegdestroydecompress(&cinfo); - - /* After finish_decompress, we can close the input file. - * Here we postpone it until after no more JPEG errors are possible, --- penjdk6/jdk/make/java/jli/Makefile 2008-02-12 04:03:55.000000000 -0500 +++ openjdk/jdk/make/java/jli/Makefile 2008-02-14 16:40:45.000000000 -0500 @@ -44,8 +44,6 @@ @@ -25004,551 +24747,6 @@ #ifdef _MSC_VER typedef LONGLONG jlong; typedef DWORDLONG julong; ---- openjdk6/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2008-02-12 04:08:13.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2008-02-14 22:45:27.000000000 -0500 -@@ -51,7 +51,9 @@ - - /* headers from the JPEG library */ - #include <jpeglib.h> --#include "jerror.h" -+#include <jerror.h> -+ -+#include <dlfcn.h> - - #undef MAX - #define MAX(a,b) ((a) > (b) ? (a) : (b)) -@@ -75,6 +77,62 @@ - static jfieldID JPEGHuffmanTable_lengthsID; - static jfieldID JPEGHuffmanTable_valuesID; - -+static void initIDs(); -+ -+typedef struct jpeg_error_mgr * (*fn_jpegstderror)(struct jpeg_error_mgr *); -+typedef boolean (*fn_jpegresynctorestart)(j_decompress_ptr, int); -+typedef JDIMENSION (*fn_jpegreadscanlines)(j_decompress_ptr, JSAMPARRAY, JDIMENSION); -+typedef boolean (*fn_jpegfinishoutput)(j_decompress_ptr); -+typedef int (*fn_jpegreadheader)(j_decompress_ptr, boolean); -+typedef boolean (*fn_jpegstartdecompress)(j_decompress_ptr); -+typedef boolean (*fn_jpeghasmultiplescans)(j_decompress_ptr); -+typedef boolean (*fn_jpegfinishdecompress)(j_decompress_ptr); -+typedef boolean (*fn_jpegstartoutput)(j_decompress_ptr, int); -+typedef void (*fn_jpegabort)(j_common_ptr); -+typedef void (*fn_jpegabortdecompress)(j_decompress_ptr); -+typedef JHUFF_TBL * (*fn_jpegallochufftable)(j_common_ptr); -+typedef JQUANT_TBL * (*fn_jpegallocquanttable)(j_common_ptr); -+typedef void (*fn_jpegcreatecompress)(j_compress_ptr, int, size_t); -+typedef void (*fn_jpegcreatedecompress)(j_decompress_ptr, int, size_t); -+typedef void (*fn_jpegdestroy)(j_common_ptr); -+typedef void (*fn_jpegfinishcompress)(j_compress_ptr); -+typedef boolean (*fn_jpeginputcomplete)(j_decompress_ptr); -+typedef void (*fn_jpegsavemarkers)(j_decompress_ptr, int, unsigned int); -+typedef void (*fn_jpegsetcolorspace)(j_compress_ptr, J_COLOR_SPACE); -+typedef void (*fn_jpegsetdefaults)(j_compress_ptr); -+typedef void (*fn_jpegsimpleprogression)(j_compress_ptr); -+typedef void (*fn_jpegstartcompress)(j_compress_ptr, boolean); -+typedef void (*fn_jpegsuppresstables)(j_compress_ptr, boolean); -+typedef JDIMENSION (*fn_jpegwritescanlines)(j_compress_ptr, JSAMPARRAY, JDIMENSION); -+typedef void (*fn_jpegwritetables)(j_compress_ptr); -+ -+fn_jpegabort jpegabort; -+fn_jpegabortdecompress jpegabortdecompress; -+fn_jpegallochufftable jpegallochufftable; -+fn_jpegallocquanttable jpegallocquanttable; -+fn_jpegcreatecompress jpegcreatecompress; -+fn_jpegcreatedecompress jpegcreatedecompress; -+fn_jpegdestroy jpegdestroy; -+fn_jpegfinishcompress jpegfinishcompress; -+fn_jpeginputcomplete jpeginputcomplete; -+fn_jpegsavemarkers jpegsavemarkers; -+fn_jpegsetcolorspace jpegsetcolorspace; -+fn_jpegsetdefaults jpegsetdefaults; -+fn_jpegsimpleprogression jpegsimpleprogression; -+fn_jpegstartcompress jpegstartcompress; -+fn_jpegsuppresstables jpegsuppresstables; -+fn_jpegwritescanlines jpegwritescanlines; -+fn_jpegwritetables jpegwritetables; -+fn_jpegstderror jpegstderror; -+fn_jpegstartoutput jpegstartoutput; -+fn_jpegfinishdecompress jpegfinishdecompress; -+fn_jpeghasmultiplescans jpeghasmultiplescans; -+fn_jpegstartdecompress jpegstartdecompress; -+fn_jpegreadheader jpegreadheader; -+fn_jpegfinishoutput jpegfinishoutput; -+fn_jpegreadscanlines jpegreadscanlines; -+fn_jpegresynctorestart jpegresynctorestart; -+ - /* - * Defined in jpegdecoder.c. Copy code from there if and - * when that disappears. */ -@@ -615,7 +673,7 @@ - return; - } - -- jpeg_abort(cinfo); // Frees any markers, but not tables -+ jpegabort(cinfo); // Frees any markers, but not tables - - } - -@@ -640,7 +698,7 @@ - return; - } - -- jpeg_abort(cinfo); // Does not reset tables -+ jpegabort(cinfo); // Does not reset tables - - } - -@@ -658,7 +716,7 @@ - free(cinfo->dest); - cinfo->dest = NULL; - } -- jpeg_destroy(info); -+ jpegdestroy(info); - free(info); - } - } -@@ -694,14 +752,14 @@ - decomp = (j_decompress_ptr) cinfo; - if (decomp->quant_tbl_ptrs[i] == NULL) { - decomp->quant_tbl_ptrs[i] = -- jpeg_alloc_quant_table(cinfo); -+ jpegallocquanttable(cinfo); - } - quant_ptr = decomp->quant_tbl_ptrs[i]; - } else { - comp = (j_compress_ptr) cinfo; - if (comp->quant_tbl_ptrs[i] == NULL) { - comp->quant_tbl_ptrs[i] = -- jpeg_alloc_quant_table(cinfo); -+ jpegallocquanttable(cinfo); - } - quant_ptr = comp->quant_tbl_ptrs[i]; - } -@@ -777,14 +835,14 @@ - decomp = (j_decompress_ptr) cinfo; - if (decomp->dc_huff_tbl_ptrs[i] == NULL) { - decomp->dc_huff_tbl_ptrs[i] = -- jpeg_alloc_huff_table(cinfo); -+ jpegallochufftable(cinfo); - } - huff_ptr = decomp->dc_huff_tbl_ptrs[i]; - } else { - comp = (j_compress_ptr) cinfo; - if (comp->dc_huff_tbl_ptrs[i] == NULL) { - comp->dc_huff_tbl_ptrs[i] = -- jpeg_alloc_huff_table(cinfo); -+ jpegallochufftable(cinfo); - } - huff_ptr = comp->dc_huff_tbl_ptrs[i]; - } -@@ -798,14 +856,14 @@ - decomp = (j_decompress_ptr) cinfo; - if (decomp->ac_huff_tbl_ptrs[i] == NULL) { - decomp->ac_huff_tbl_ptrs[i] = -- jpeg_alloc_huff_table(cinfo); -+ jpegallochufftable(cinfo); - } - huff_ptr = decomp->ac_huff_tbl_ptrs[i]; - } else { - comp = (j_compress_ptr) cinfo; - if (comp->ac_huff_tbl_ptrs[i] == NULL) { - comp->ac_huff_tbl_ptrs[i] = -- jpeg_alloc_huff_table(cinfo); -+ jpegallochufftable(cinfo); - } - huff_ptr = comp->ac_huff_tbl_ptrs[i]; - } -@@ -1346,6 +1404,8 @@ - jclass ImageInputStreamClass, - jclass qTableClass, - jclass huffClass) { -+ -+ initIDs(); - - ImageInputStream_readID = (*env)->GetMethodID(env, - ImageInputStreamClass, -@@ -1431,7 +1491,7 @@ - } - - /* We set up the normal JPEG error routines, then override error_exit. */ -- cinfo->err = jpeg_std_error(&(jerr->pub)); -+ cinfo->err = jpegstderror(&(jerr->pub)); - jerr->pub.error_exit = sun_jpeg_error_exit; - /* We need to setup our own print routines */ - jerr->pub.output_message = sun_jpeg_output_message; -@@ -1448,11 +1508,11 @@ - } - - /* Perform library initialization */ -- jpeg_create_decompress(cinfo); -+ jpegcreatedecompress(cinfo, JPEG_LIB_VERSION, (size_t) sizeof(struct jpeg_decompress_struct)); - - // Set up to keep any APP2 markers, as these might contain ICC profile - // data -- jpeg_save_markers(cinfo, ICC_MARKER, 0xFFFF); -+ jpegsavemarkers(cinfo, ICC_MARKER, 0xFFFF); - - /* - * Now set up our source. -@@ -1470,7 +1530,7 @@ - cinfo->src->init_source = imageio_init_source; - cinfo->src->fill_input_buffer = imageio_fill_input_buffer; - cinfo->src->skip_input_data = imageio_skip_input_data; -- cinfo->src->resync_to_restart = jpeg_resync_to_restart; // use default -+ cinfo->src->resync_to_restart = jpegresynctorestart; // use default - cinfo->src->term_source = imageio_term_source; - - /* set up the association to persist for future calls */ -@@ -1588,7 +1648,7 @@ - src->bytes_in_buffer = 0; - } - -- ret = jpeg_read_header(cinfo, FALSE); -+ ret = jpegreadheader(cinfo, FALSE); - - if (ret == JPEG_HEADER_TABLES_ONLY) { - retval = JNI_TRUE; -@@ -1709,7 +1769,7 @@ - cinfo->num_components, - read_icc_profile(env, cinfo)); - if (reset) { -- jpeg_abort_decompress(cinfo); -+ jpegabortdecompress(cinfo); - } - } - -@@ -1933,7 +1993,7 @@ - TRUE); - } - -- progressive = jpeg_has_multiple_scans(cinfo); -+ progressive = jpeghasmultiplescans(cinfo); - if (progressive) { - cinfo->buffered_image = TRUE; - cinfo->input_scan_number = minProgressivePass+1; // Java count from 0 -@@ -1945,7 +2005,7 @@ - - data->streamBuf.suspendable = FALSE; - -- jpeg_start_decompress(cinfo); -+ jpegstartdecompress(cinfo); - - // loop over progressive passes - done = FALSE; -@@ -1953,7 +2013,7 @@ - if (progressive) { - // initialize the next pass. Note that this skips up to - // the first interesting pass. -- jpeg_start_output(cinfo, cinfo->input_scan_number); -+ jpegstartoutput(cinfo, cinfo->input_scan_number); - if (wantUpdates) { - (*env)->CallVoidMethod(env, this, - JPEGImageReader_passStartedID, -@@ -1969,7 +2029,7 @@ - // Skip until the first interesting line - while ((data->abortFlag == JNI_FALSE) - && ((jint)cinfo->output_scanline < sourceYStart)) { -- jpeg_read_scanlines(cinfo, &scanLinePtr, 1); -+ jpegreadscanlines(cinfo, &scanLinePtr, 1); - } - - scanlineLimit = sourceYStart+sourceHeight; -@@ -1982,7 +2042,7 @@ - while ((data->abortFlag == JNI_FALSE) - && ((jint)cinfo->output_scanline < scanlineLimit)) { - -- jpeg_read_scanlines(cinfo, &scanLinePtr, 1); -+ jpegreadscanlines(cinfo, &scanLinePtr, 1); - - // Now mangle it into our buffer - out = data->pixelBuf.buf.bp; -@@ -2037,13 +2097,13 @@ - skipLines = linesLeft; - } - for(i = 0; i < skipLines; i++) { -- jpeg_read_scanlines(cinfo, &scanLinePtr, 1); -+ jpegreadscanlines(cinfo, &scanLinePtr, 1); - } - } - if (progressive) { -- jpeg_finish_output(cinfo); // Increments pass counter -+ jpegfinishoutput(cinfo); // Increments pass counter - // Call Java to notify pass complete -- if (jpeg_input_complete(cinfo) -+ if (jpeginputcomplete(cinfo) - || (cinfo->input_scan_number > maxProgressivePass)) { - done = TRUE; - } -@@ -2063,9 +2123,9 @@ - if (cinfo->output_scanline == cinfo->output_height) { - // if ((cinfo->output_scanline == cinfo->output_height) && - //(jpeg_input_complete(cinfo))) { // We read the whole file -- jpeg_finish_decompress(cinfo); -+ jpegfinishdecompress(cinfo); - } else { -- jpeg_abort_decompress(cinfo); -+ jpegabortdecompress(cinfo); - } - - free(scanLinePtr); -@@ -2111,7 +2171,7 @@ - - cinfo = (j_decompress_ptr) data->jpegObj; - -- jpeg_abort_decompress(cinfo); -+ jpegabortdecompress(cinfo); - } - - -@@ -2317,6 +2377,143 @@ - - /********************** end of destination manager ************/ - -+METHODDEF(void) -+initIDs() -+{ -+ void *handle = dlopen("/usr/lib/libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); -+ if (handle == NULL) -+ handle = dlopen("/usr/lib64/libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); -+ jpegstderror = (fn_jpegstderror)dlsym(handle, "jpeg_std_error"); -+ if (jpegstderror == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegreadheader = (fn_jpegreadheader)dlsym(handle, "jpeg_read_header"); -+ if (jpegreadheader == NULL) { -+ dlclose(handle); -+ } -+ -+ jpeghasmultiplescans = (fn_jpeghasmultiplescans)dlsym(handle, "jpeg_has_multiple_scans"); -+ if (jpeghasmultiplescans == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegstartdecompress = (fn_jpegstartdecompress)dlsym(handle, "jpeg_start_decompress"); -+ if (jpegstartdecompress == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegstartoutput = (fn_jpegstartoutput)dlsym(handle, "jpeg_start_output"); -+ if (jpegstartoutput == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegfinishdecompress = (fn_jpegfinishdecompress)dlsym(handle, "jpeg_finish_decompress"); -+ if (jpegfinishdecompress == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegreadscanlines = (fn_jpegreadscanlines)dlsym(handle, "jpeg_read_scanlines"); -+ if (jpegreadscanlines == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegfinishoutput = (fn_jpegfinishoutput)dlsym(handle, "jpeg_finish_output"); -+ if (jpegfinishoutput == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegresynctorestart = (fn_jpegresynctorestart)dlsym(handle, "jpeg_resync_to_restart"); -+ if (jpegresynctorestart == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegabort = (fn_jpegabort)dlsym(handle, "jpeg_abort"); -+ if (jpegabort == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegabortdecompress = (fn_jpegabortdecompress)dlsym(handle, "jpeg_abort_decompress"); -+ if (jpegabortdecompress == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegallochufftable = (fn_jpegallochufftable)dlsym(handle, "jpeg_alloc_huff_table"); -+ if (jpegallochufftable == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegallocquanttable = (fn_jpegallocquanttable)dlsym(handle, "jpeg_alloc_quant_table"); -+ if (jpegallocquanttable == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegcreatecompress = (fn_jpegcreatecompress)dlsym(handle, "jpeg_CreateCompress"); -+ if (jpegcreatecompress == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegcreatedecompress = (fn_jpegcreatedecompress)dlsym(handle, "jpeg_CreateDecompress"); -+ if (jpegcreatedecompress == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegdestroy = (fn_jpegdestroy)dlsym(handle, "jpeg_destroy"); -+ if (jpegdestroy == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegfinishcompress = (fn_jpegfinishcompress)dlsym(handle, "jpeg_finish_compress"); -+ if (jpegfinishcompress == NULL) { -+ dlclose(handle); -+ } -+ -+ jpeginputcomplete = (fn_jpeginputcomplete)dlsym(handle, "jpeg_input_complete"); -+ if (jpeginputcomplete == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegsavemarkers = (fn_jpegsavemarkers)dlsym(handle, "jpeg_save_markers"); -+ if (jpegsavemarkers == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegsetcolorspace = (fn_jpegsetcolorspace)dlsym(handle, "jpeg_set_colorspace"); -+ if (jpegsetcolorspace == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegsetdefaults = (fn_jpegsetdefaults)dlsym(handle, "jpeg_set_defaults"); -+ if (jpegsetdefaults == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegsimpleprogression = (fn_jpegsimpleprogression)dlsym(handle, "jpeg_simple_progression"); -+ if (jpegsimpleprogression == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegstartcompress = (fn_jpegstartcompress)dlsym(handle, "jpeg_start_compress"); -+ if (jpegstartcompress == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegsuppresstables = (fn_jpegsuppresstables)dlsym(handle, "jpeg_suppress_tables"); -+ if (jpegsuppresstables == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegwritescanlines = (fn_jpegwritescanlines)dlsym(handle, "jpeg_write_scanlines"); -+ if (jpegwritescanlines == NULL) { -+ dlclose(handle); -+ } -+ -+ jpegwritetables = (fn_jpegwritetables)dlsym(handle, "jpeg_write_tables"); -+ if (jpegwritetables == NULL) { -+ dlclose(handle); -+ } -+} -+ - /********************** Writer JNI calls **********************/ - - -@@ -2328,6 +2525,8 @@ - jclass qTableClass, - jclass huffClass) { - -+ initIDs(); -+ - ImageOutputStream_writeID = (*env)->GetMethodID(env, - IOSClass, - "write", -@@ -2401,7 +2600,7 @@ - } - - /* We set up the normal JPEG error routines, then override error_exit. */ -- cinfo->err = jpeg_std_error(&(jerr->pub)); -+ cinfo->err = jpegstderror(&(jerr->pub)); - jerr->pub.error_exit = sun_jpeg_error_exit; - /* We need to setup our own print routines */ - jerr->pub.output_message = sun_jpeg_output_message; -@@ -2418,7 +2617,7 @@ - } - - /* Perform library initialization */ -- jpeg_create_compress(cinfo); -+ jpegcreatecompress(cinfo, JPEG_LIB_VERSION, (size_t) sizeof(struct jpeg_compress_struct)); - - /* Now set up the destination */ - dest = malloc(sizeof(struct jpeg_destination_mgr)); -@@ -2527,7 +2726,7 @@ - return; - } - -- jpeg_suppress_tables(cinfo, TRUE); // Suppress writing of any current -+ jpegsuppresstables(cinfo, TRUE); // Suppress writing of any current - - data->streamBuf.suspendable = FALSE; - if (qtables != NULL) { -@@ -2542,7 +2741,7 @@ - DCHuffmanTables, ACHuffmanTables, TRUE); - } - -- jpeg_write_tables(cinfo); // Flushes the buffer for you -+ jpegwritetables(cinfo); // Flushes the buffer for you - RELEASE_ARRAYS(env, data, NULL); - } - -@@ -2698,9 +2897,9 @@ - cinfo->input_components = numBands; - cinfo->in_color_space = inCs; - -- jpeg_set_defaults(cinfo); -+ jpegsetdefaults(cinfo); - -- jpeg_set_colorspace(cinfo, outCs); -+ jpegsetcolorspace(cinfo, outCs); - - cinfo->optimize_coding = optimize; - -@@ -2737,7 +2936,7 @@ - (*env)->ReleaseIntArrayElements(env, QtableSelectors, - qsels, JNI_ABORT); - -- jpeg_suppress_tables(cinfo, TRUE); // Disable writing any current -+ jpegsuppresstables(cinfo, TRUE); // Disable writing any current - - qlen = setQTables(env, (j_common_ptr) cinfo, qtables, writeDQT); - -@@ -2762,7 +2961,7 @@ - - if (progressive) { - if (numScans == 0) { // then use default scans -- jpeg_simple_progression(cinfo); -+ jpegsimpleprogression(cinfo); - } else { - cinfo->num_scans = numScans; - // Copy the scanInfo to a local array -@@ -2804,7 +3003,7 @@ - #endif - - // start the compressor; tables must already be set -- jpeg_start_compress(cinfo, FALSE); // Leaves sent_table alone -+ jpegstartcompress(cinfo, FALSE); // Leaves sent_table alone - - if (haveMetadata) { - // Flush the buffer -@@ -2868,7 +3067,7 @@ - } - } - // write it out -- jpeg_write_scanlines(cinfo, (JSAMPARRAY)&scanLinePtr, 1); -+ jpegwritescanlines(cinfo, (JSAMPARRAY)&scanLinePtr, 1); - targetLine += stepY; - } - -@@ -2877,9 +3076,9 @@ - * so use jpeg_abort instead of jpeg_finish_compress. - */ - if (cinfo->next_scanline == cinfo->image_height) { -- jpeg_finish_compress(cinfo); // Flushes buffer with term_dest -+ jpegfinishcompress(cinfo); // Flushes buffer with term_dest - } else { -- jpeg_abort((j_common_ptr)cinfo); -+ jpegabort((j_common_ptr)cinfo); - } - free(scanLinePtr); - RELEASE_ARRAYS(env, data, NULL); --- openjdkold/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2008-02-12 04:08:13.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2008-02-26 11:02:52.000000000 -0500 @@ -51,7 +51,9 @@