提交 4d40a86b 编写于 作者: A aivanov

8201240: Improve releasing native resources of BufImgSurfaceData.ICMColorData

Reviewed-by: prr, serb
上级 dfd5d64b
......@@ -94,7 +94,6 @@ SUNWprivate_1.1 {
Java_java_awt_Rectangle_initIDs;
Java_sun_awt_image_BufImgSurfaceData_initIDs;
Java_sun_awt_image_BufImgSurfaceData_initRaster;
Java_sun_awt_image_BufImgSurfaceData_freeNativeICMData;
Java_sun_awt_image_BytePackedRaster_initIDs;
Java_sun_awt_image_ImagingLib_lookupByteBI;
Java_sun_awt_image_ImagingLib_lookupByteRaster;
......
......@@ -96,7 +96,6 @@ SUNWprivate_1.1 {
Java_sun_awt_image_BufImgSurfaceData_initIDs;
Java_sun_awt_image_BufImgSurfaceData_initRaster;
Java_sun_awt_image_BufImgSurfaceData_setSurfaceData;
Java_sun_awt_image_BufImgSurfaceData_freeNativeICMData;
Java_sun_awt_image_BytePackedRaster_initIDs;
Java_sun_awt_image_ImagingLib_lookupByteBI;
Java_sun_awt_image_ImagingLib_lookupByteRaster;
......
/*
* Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -25,7 +25,6 @@
package sun.awt.image;
import java.awt.Color;
import java.awt.Rectangle;
import java.awt.GraphicsConfiguration;
import java.awt.image.ColorModel;
......@@ -38,9 +37,6 @@ import java.awt.image.DataBuffer;
import sun.java2d.SurfaceData;
import sun.java2d.SunGraphics2D;
import sun.java2d.StateTrackable;
import sun.java2d.StateTrackable.*;
import sun.java2d.StateTracker;
import sun.java2d.loops.SurfaceType;
import sun.java2d.loops.CompositeType;
import sun.java2d.loops.RenderLoops;
......@@ -409,8 +405,6 @@ public class BufImgSurfaceData extends SurfaceData {
// their pixels are immediately retrievable anyway.
}
private static native void freeNativeICMData(long pData);
/**
* Returns destination Image associated with this SurfaceData.
*/
......@@ -424,12 +418,5 @@ public class BufImgSurfaceData extends SurfaceData {
private ICMColorData(long pData) {
this.pData = pData;
}
public void finalize() {
if (pData != 0L) {
BufImgSurfaceData.freeNativeICMData(pData);
pData = 0L;
}
}
}
}
/*
* Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -32,6 +32,7 @@
#include "jni_util.h"
/* Define uintptr_t */
#include "gdefs.h"
#include "Disposer.h"
/**
* This include file contains support code for loops using the
......@@ -79,19 +80,6 @@ Java_sun_awt_image_BufImgSurfaceData_initIDs
"Lsun/awt/image/BufImgSurfaceData$ICMColorData;"));
}
/*
* Class: sun_java2d_SurfaceData
* Method: freeNativeICMData
* Signature: (Ljava/awt/image/IndexColorModel;)V
*/
JNIEXPORT void JNICALL
Java_sun_awt_image_BufImgSurfaceData_freeNativeICMData
(JNIEnv *env, jclass sd, jlong pData)
{
ColorData *cdata = (ColorData*)jlong_to_ptr(pData);
freeICMColorData(cdata);
}
/*
* Class: sun_awt_image_BufImgSurfaceData
* Method: initOps
......@@ -139,6 +127,15 @@ Java_sun_awt_image_BufImgSurfaceData_initRaster(JNIEnv *env, jobject bisd,
bisdo->rasbounds.y2 = height;
}
/*
* Releases native structures associated with BufImgSurfaceData.ICMColorData.
*/
static void BufImg_Dispose_ICMColorData(JNIEnv *env, jlong pData)
{
ColorData *cdata = (ColorData*)jlong_to_ptr(pData);
freeICMColorData(cdata);
}
/*
* Method for disposing native BufImgSD
*/
......@@ -317,6 +314,7 @@ static ColorData *BufImg_SetupICM(JNIEnv *env,
}
(*env)->SetObjectField(env, bisdo->icm, colorDataID, colorData);
Disposer_AddRecord(env, colorData, BufImg_Dispose_ICMColorData, pData);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册