summaryrefslogtreecommitdiff
path: root/java/openjdk6/files/icedtea/openjdk/8014102-improve_image_conversion.patch
diff options
context:
space:
mode:
Diffstat (limited to 'java/openjdk6/files/icedtea/openjdk/8014102-improve_image_conversion.patch')
-rw-r--r--java/openjdk6/files/icedtea/openjdk/8014102-improve_image_conversion.patch190
1 files changed, 0 insertions, 190 deletions
diff --git a/java/openjdk6/files/icedtea/openjdk/8014102-improve_image_conversion.patch b/java/openjdk6/files/icedtea/openjdk/8014102-improve_image_conversion.patch
deleted file mode 100644
index d49c301836ea..000000000000
--- a/java/openjdk6/files/icedtea/openjdk/8014102-improve_image_conversion.patch
+++ /dev/null
@@ -1,190 +0,0 @@
-# HG changeset patch
-# User bae
-# Date 1369130199 -14400
-# Tue May 21 13:56:39 2013 +0400
-# Node ID d55d40616754cd93aa396719ddfd81bae584d4f0
-# Parent 5405d79569f76d1285fd3c840489477a81bd9eff
-8014102: Improve image conversion
-Reviewed-by: prr
-
-diff -r 5405d79569f7 -r d55d40616754 src/share/native/sun/awt/medialib/awt_ImagingLib.c
---- jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c Fri May 17 16:47:51 2013 +0400
-+++ jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c Tue May 21 13:56:39 2013 +0400
-@@ -1986,21 +1986,25 @@
- return 0;
- }
-
-+#define NUM_LINES 10
-+
- static int
- cvtCustomToDefault(JNIEnv *env, BufImageS_t *imageP, int component,
- unsigned char *dataP) {
-- ColorModelS_t *cmP = &imageP->cmodel;
-- RasterS_t *rasterP = &imageP->raster;
-+ const RasterS_t *rasterP = &imageP->raster;
-+ const int w = rasterP->width;
-+ const int h = rasterP->height;
-+
- int y;
-- jobject jpixels = NULL;
-+ jintArray jpixels = NULL;
- jint *pixels;
- unsigned char *dP = dataP;
--#define NUM_LINES 10
-- int numLines = NUM_LINES;
-+ int numLines = h > NUM_LINES ? NUM_LINES : h;
-+
- /* it is safe to calculate the scan length, because width has been verified
- * on creation of the mlib image
- */
-- int scanLength = rasterP->width * 4;
-+ const int scanLength = w * 4;
-
- int nbytes = 0;
- if (!SAFE_TO_MULT(numLines, scanLength)) {
-@@ -2009,71 +2013,99 @@
-
- nbytes = numLines * scanLength;
-
-- for (y=0; y < rasterP->height; y+=numLines) {
-- /* getData, one scanline at a time */
-- if (y+numLines > rasterP->height) {
-- numLines = rasterP->height - y;
-- nbytes = numLines * scanLength;
-- }
-- jpixels = (*env)->CallObjectMethod(env, imageP->jimage,
-- g_BImgGetRGBMID, 0, y,
-- rasterP->width, numLines,
-- jpixels,0, rasterP->width);
-- if (jpixels == NULL) {
-- JNU_ThrowInternalError(env, "Can't retrieve pixels.");
-- return -1;
-- }
--
-- pixels = (*env)->GetPrimitiveArrayCritical(env, jpixels, NULL);
-- memcpy(dP, pixels, nbytes);
-- dP += nbytes;
-- (*env)->ReleasePrimitiveArrayCritical(env, jpixels, pixels,
-- JNI_ABORT);
-- }
-- return 0;
--}
--
--static int
--cvtDefaultToCustom(JNIEnv *env, BufImageS_t *imageP, int component,
-- unsigned char *dataP) {
-- ColorModelS_t *cmP = &imageP->cmodel;
-- RasterS_t *rasterP = &imageP->raster;
-- int y;
-- jint *pixels;
-- unsigned char *dP = dataP;
--#define NUM_LINES 10
-- int numLines = NUM_LINES;
-- int nbytes = rasterP->width*4*NUM_LINES;
-- jintArray jpixels;
--
- jpixels = (*env)->NewIntArray(env, nbytes);
- if (JNU_IsNull(env, jpixels)) {
- JNU_ThrowOutOfMemoryError(env, "Out of Memory");
- return -1;
- }
-
-- for (y=0; y < rasterP->height; y+=NUM_LINES) {
-- if (y+numLines > rasterP->height) {
-- numLines = rasterP->height - y;
-- nbytes = rasterP->width*4*numLines;
-+ for (y = 0; y < h; y += numLines) {
-+ if (y + numLines > h) {
-+ numLines = h - y;
-+ nbytes = numLines * scanLength;
- }
-+
-+ (*env)->CallObjectMethod(env, imageP->jimage,
-+ g_BImgGetRGBMID, 0, y,
-+ w, numLines,
-+ jpixels, 0, w);
-+ if ((*env)->ExceptionOccurred(env)) {
-+ (*env)->DeleteLocalRef(env, jpixels);
-+ return -1;
-+ }
-+
- pixels = (*env)->GetPrimitiveArrayCritical(env, jpixels, NULL);
- if (pixels == NULL) {
-- /* JNI error */
-+ (*env)->DeleteLocalRef(env, jpixels);
- return -1;
- }
-
-+ memcpy(dP, pixels, nbytes);
-+ dP += nbytes;
-+
-+ (*env)->ReleasePrimitiveArrayCritical(env, jpixels, pixels,
-+ JNI_ABORT);
-+ }
-+
-+ /* Need to release the array */
-+ (*env)->DeleteLocalRef(env, jpixels);
-+
-+ return 0;
-+}
-+
-+static int
-+cvtDefaultToCustom(JNIEnv *env, BufImageS_t *imageP, int component,
-+ unsigned char *dataP) {
-+ const RasterS_t *rasterP = &imageP->raster;
-+ const int w = rasterP->width;
-+ const int h = rasterP->height;
-+
-+ int y;
-+ jintArray jpixels = NULL;
-+ jint *pixels;
-+ unsigned char *dP = dataP;
-+ int numLines = h > NUM_LINES ? NUM_LINES : h;
-+
-+ /* it is safe to calculate the scan length, because width has been verified
-+ * on creation of the mlib image
-+ */
-+ const int scanLength = w * 4;
-+
-+ int nbytes = 0;
-+ if (!SAFE_TO_MULT(numLines, scanLength)) {
-+ return -1;
-+ }
-+
-+ nbytes = numLines * scanLength;
-+
-+ jpixels = (*env)->NewIntArray(env, nbytes);
-+ if (JNU_IsNull(env, jpixels)) {
-+ JNU_ThrowOutOfMemoryError(env, "Out of Memory");
-+ return -1;
-+ }
-+
-+ for (y = 0; y < h; y += numLines) {
-+ if (y + numLines > h) {
-+ numLines = h - y;
-+ nbytes = numLines * scanLength;
-+ }
-+
-+ pixels = (*env)->GetPrimitiveArrayCritical(env, jpixels, NULL);
-+ if (pixels == NULL) {
-+ (*env)->DeleteLocalRef(env, jpixels);
-+ return -1;
-+ }
-+
- memcpy(pixels, dP, nbytes);
- dP += nbytes;
-
- (*env)->ReleasePrimitiveArrayCritical(env, jpixels, pixels, 0);
-
-- /* setData, one scanline at a time */
-- /* Fix 4223648, 4184283 */
- (*env)->CallVoidMethod(env, imageP->jimage, g_BImgSetRGBMID, 0, y,
-- rasterP->width, numLines, jpixels, 0,
-- rasterP->width);
-+ w, numLines, jpixels,
-+ 0, w);
- if ((*env)->ExceptionOccurred(env)) {
-+ (*env)->DeleteLocalRef(env, jpixels);
- return -1;
- }
- }