[OpenJDK 2D-Dev] What is the point of CloseTTFontFileFunc?
Andrew Dinn
adinn at redhat.com
Mon Dec 29 11:03:57 UTC 2014
Hi again,
Trying a second time . . . anyone have an answer to this question?
regards,
Andrew Dinn
-----------
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in UK and Wales under Company Registration No. 3798903
Directors: Michael Cunningham (USA), Matt Parson (USA), Charlie Peters
(USA), Michael O'Neill (Ireland)
On 19/12/14 11:08, Andrew Dinn wrote:
> Hi All,
>
> I am looking at a problem Red Hat customers have reported with True Type
> fonts where they are seeing a Hotspot crash using JDK7. the problem
> relates to the use of TT font scalers and, in particular to code called
> under native methods initNativeScaler and disposeNativeScaler of class
> sun.font.FreetypeFontScaler.
>
> While investigating this I looked at the stream close function
> CloseTTFontFileFunc provided for the scaler in freetypeScaler.c and was
> rather confused as to what it was supposed to achieve. n.b. the code
> below from the release version of Icedtea7 which caused the problem
> appears still to exist unchanged in the latest jdk7u, jdk8u and jdk9).
>
> /* NB: is it ever called? */
> static void CloseTTFontFileFunc(FT_Stream stream) {
> FTScalerInfo *scalerInfo = (FTScalerInfo *) stream->pathname.pointer;
> JNIEnv* env = scalerInfo->env;
> jclass tmpClass = (*env)->FindClass(env, "sun/font/TrueTypeFont");
> jfieldID platNameField =
> (*env)->GetFieldID(env, tmpClass, "platName",
> "Ljava/lang/String;");
> jstring platName = (*env)->GetObjectField(env,
> scalerInfo->font2D,
> platNameField);
> const char *name = JNU_GetStringPlatformChars(env, platName, NULL);
> JNU_ReleaseStringPlatformChars(env, platName, name);
> }
>
> Is there any point in calling JNU_GetStringPlatformChars and then
> JNU_ReleaseStringPlatformChars? This appears simply to malloc a copy of
> the platname string, albeit perhaps with some multibyte chars replaced
> with '?', and then to immediately free the allocated string. Is there
> any good reason for this?
>
> regards,
>
>
> Andrew Dinn
> -----------
>
>
>
More information about the 2d-dev
mailing list