mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-22 16:26:05 +00:00
8033624: Fix raw and unchecked lint warnings in sun.font
Reviewed-by: alanb, prr
This commit is contained in:
parent
ef9ba9784a
commit
6961828aeb
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2004, 2014, 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
|
||||
@ -410,7 +410,7 @@ public final class AttributeValues implements Cloneable {
|
||||
}
|
||||
|
||||
public Hashtable<Object, Object> toSerializableHashtable() {
|
||||
Hashtable ht = new Hashtable();
|
||||
Hashtable<Object, Object> ht = new Hashtable<>();
|
||||
int hashkey = defined;
|
||||
for (int m = defined, i = 0; m != 0; ++i) {
|
||||
EAttribute ea = EAttribute.atts[i];
|
||||
@ -798,7 +798,7 @@ public final class AttributeValues implements Cloneable {
|
||||
hl = (InputMethodHighlight)((Annotation)imHighlight).getValue();
|
||||
}
|
||||
|
||||
Map imStyles = hl.getStyle();
|
||||
Map<TextAttribute, ?> imStyles = hl.getStyle();
|
||||
if (imStyles == null) {
|
||||
Toolkit tk = Toolkit.getDefaultToolkit();
|
||||
imStyles = tk.mapInputMethodHighlight(hl);
|
||||
@ -812,6 +812,7 @@ public final class AttributeValues implements Cloneable {
|
||||
return this;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static AffineTransform getBaselineTransform(Map<?, ?> map) {
|
||||
if (map != null) {
|
||||
AttributeValues av = null;
|
||||
@ -828,6 +829,7 @@ public final class AttributeValues implements Cloneable {
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static AffineTransform getCharTransform(Map<?, ?> map) {
|
||||
if (map != null) {
|
||||
AttributeValues av = null;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2014, 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
|
||||
@ -113,7 +113,7 @@ public class CreatedFontTracker {
|
||||
if (t == null) {
|
||||
// Add a shutdown hook to remove the temp file.
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
/* The thread must be a member of a thread group
|
||||
* which will not get GCed before VM exit.
|
||||
|
||||
@ -46,6 +46,7 @@ import java.awt.geom.Area;
|
||||
import java.awt.geom.Line2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.awt.geom.GeneralPath;
|
||||
import java.text.AttributedCharacterIterator.Attribute;
|
||||
|
||||
import static sun.font.AttributeValues.*;
|
||||
import static sun.font.EAttribute.*;
|
||||
@ -107,7 +108,7 @@ public class Decoration {
|
||||
* Return a Decoration appropriate for the the given Map.
|
||||
* @param attributes the Map used to determine the Decoration
|
||||
*/
|
||||
public static Decoration getDecoration(Map attributes) {
|
||||
public static Decoration getDecoration(Map<? extends Attribute, ?> attributes) {
|
||||
if (attributes == null) {
|
||||
return PLAIN;
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2014, 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
|
||||
@ -159,7 +159,7 @@ public abstract class FileFont extends PhysicalFont {
|
||||
SunFontManager fm = SunFontManager.getInstance();
|
||||
fm.deRegisterBadFont(this);
|
||||
|
||||
for (Reference strikeRef : strikeCache.values()) {
|
||||
for (Reference<FontStrike> strikeRef : strikeCache.values()) {
|
||||
if (strikeRef != null) {
|
||||
/* NB we know these are all FileFontStrike instances
|
||||
* because the cache is on this FileFont
|
||||
@ -261,7 +261,7 @@ public abstract class FileFont extends PhysicalFont {
|
||||
|
||||
public void dispose() {
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
if (fontFile != null) {
|
||||
try {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2014, 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
|
||||
@ -91,8 +91,8 @@ public abstract class Font2D {
|
||||
* the map will have fewer entries, and there's no need to try to
|
||||
* make the Font2D part of the key.
|
||||
*/
|
||||
protected ConcurrentHashMap<FontStrikeDesc, Reference>
|
||||
strikeCache = new ConcurrentHashMap<FontStrikeDesc, Reference>();
|
||||
protected ConcurrentHashMap<FontStrikeDesc, Reference<FontStrike>>
|
||||
strikeCache = new ConcurrentHashMap<>();
|
||||
|
||||
/* Store the last Strike in a Reference object.
|
||||
* Similarly to the strike that was stored on a C++ font object,
|
||||
@ -105,7 +105,7 @@ public abstract class Font2D {
|
||||
* This pre-supposes that a FontStrike is a shareable object, which
|
||||
* it should.
|
||||
*/
|
||||
protected Reference lastFontStrike = new SoftReference(null);
|
||||
protected Reference<FontStrike> lastFontStrike = new SoftReference<>(null);
|
||||
|
||||
/*
|
||||
* POSSIBLE OPTIMISATION:
|
||||
@ -195,7 +195,7 @@ public abstract class Font2D {
|
||||
* strike.
|
||||
*/
|
||||
public FontStrike getStrike(Font font) {
|
||||
FontStrike strike = (FontStrike)lastFontStrike.get();
|
||||
FontStrike strike = lastFontStrike.get();
|
||||
if (strike != null) {
|
||||
return strike;
|
||||
} else {
|
||||
@ -307,17 +307,17 @@ public abstract class Font2D {
|
||||
* collected, then we create a new strike, put it in the map and
|
||||
* set it to be the last strike.
|
||||
*/
|
||||
FontStrike strike = (FontStrike)lastFontStrike.get();
|
||||
FontStrike strike = lastFontStrike.get();
|
||||
if (strike != null && desc.equals(strike.desc)) {
|
||||
//strike.lastlookupTime = System.currentTimeMillis();
|
||||
return strike;
|
||||
} else {
|
||||
Reference strikeRef = strikeCache.get(desc);
|
||||
Reference<FontStrike> strikeRef = strikeCache.get(desc);
|
||||
if (strikeRef != null) {
|
||||
strike = (FontStrike)strikeRef.get();
|
||||
strike = strikeRef.get();
|
||||
if (strike != null) {
|
||||
//strike.lastlookupTime = System.currentTimeMillis();
|
||||
lastFontStrike = new SoftReference(strike);
|
||||
lastFontStrike = new SoftReference<>(strike);
|
||||
StrikeCache.refStrike(strike);
|
||||
return strike;
|
||||
}
|
||||
@ -360,14 +360,14 @@ public abstract class Font2D {
|
||||
}
|
||||
strikeCache.put(desc, strikeRef);
|
||||
//strike.lastlookupTime = System.currentTimeMillis();
|
||||
lastFontStrike = new SoftReference(strike);
|
||||
lastFontStrike = new SoftReference<>(strike);
|
||||
StrikeCache.refStrike(strike);
|
||||
return strike;
|
||||
}
|
||||
}
|
||||
|
||||
void removeFromCache(FontStrikeDesc desc) {
|
||||
Reference ref = strikeCache.get(desc);
|
||||
Reference<FontStrike> ref = strikeCache.get(desc);
|
||||
if (ref != null) {
|
||||
Object o = ref.get();
|
||||
if (o == null) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2014, 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
|
||||
@ -170,10 +170,10 @@ public final class FontDesignMetrics extends FontMetrics {
|
||||
* Also we put the references on a queue so that if they do get nulled
|
||||
* out we can clear the keys from the table.
|
||||
*/
|
||||
private static class KeyReference extends SoftReference
|
||||
private static class KeyReference extends SoftReference<Object>
|
||||
implements DisposerRecord, Disposer.PollDisposable {
|
||||
|
||||
static ReferenceQueue queue = Disposer.getQueue();
|
||||
static ReferenceQueue<Object> queue = Disposer.getQueue();
|
||||
|
||||
Object key;
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2014, 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
|
||||
@ -71,7 +71,7 @@ public final class FontManagerFactory {
|
||||
return instance;
|
||||
}
|
||||
|
||||
AccessController.doPrivileged(new PrivilegedAction() {
|
||||
AccessController.doPrivileged(new PrivilegedAction<Object>() {
|
||||
|
||||
public Object run() {
|
||||
try {
|
||||
@ -79,7 +79,7 @@ public final class FontManagerFactory {
|
||||
System.getProperty("sun.font.fontmanager",
|
||||
DEFAULT_CLASS);
|
||||
ClassLoader cl = ClassLoader.getSystemClassLoader();
|
||||
Class fmClass = Class.forName(fmClassName, true, cl);
|
||||
Class<?> fmClass = Class.forName(fmClassName, true, cl);
|
||||
instance = (FontManager) fmClass.newInstance();
|
||||
} catch (ClassNotFoundException |
|
||||
InstantiationException |
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2014, 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
|
||||
@ -30,7 +30,7 @@ import sun.java2d.SunGraphicsEnvironment;
|
||||
public class FontManagerNativeLibrary {
|
||||
static {
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
/* REMIND do we really have to load awt here? */
|
||||
System.loadLibrary("awt");
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2014, 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
|
||||
@ -33,6 +33,7 @@ package sun.font;
|
||||
import java.awt.Font;
|
||||
import java.awt.GraphicsEnvironment;
|
||||
import java.awt.font.TextAttribute;
|
||||
import java.text.AttributedCharacterIterator;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import sun.text.CodePointIterator;
|
||||
@ -222,7 +223,8 @@ public final class FontResolver {
|
||||
* is Font.PLAIN
|
||||
* @see #getFontIndex
|
||||
*/
|
||||
public Font getFont(int index, Map attributes) {
|
||||
public Font getFont(int index,
|
||||
Map<? extends AttributedCharacterIterator.Attribute, ?> attributes) {
|
||||
Font font = defaultFont;
|
||||
|
||||
if (index >= 2) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2014, 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
|
||||
@ -82,23 +82,24 @@ import sun.java2d.DisposerRecord;
|
||||
public abstract class FontScaler implements DisposerRecord {
|
||||
|
||||
private static FontScaler nullScaler = null;
|
||||
private static Constructor<FontScaler> scalerConstructor = null;
|
||||
private static Constructor<? extends FontScaler> scalerConstructor = null;
|
||||
|
||||
//Find preferred font scaler
|
||||
//
|
||||
//NB: we can allow property based preferences
|
||||
// (theoretically logic can be font type specific)
|
||||
static {
|
||||
Class scalerClass = null;
|
||||
Class arglst[] = new Class[] {Font2D.class, int.class,
|
||||
Class<? extends FontScaler> scalerClass = null;
|
||||
Class<?>[] arglst = new Class<?>[] {Font2D.class, int.class,
|
||||
boolean.class, int.class};
|
||||
|
||||
try {
|
||||
if (FontUtilities.isOpenJDK) {
|
||||
scalerClass = Class.forName("sun.font.FreetypeFontScaler");
|
||||
} else {
|
||||
scalerClass = Class.forName("sun.font.T2KFontScaler");
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
Class<? extends FontScaler> tmp = (Class<? extends FontScaler>)
|
||||
(FontUtilities.isOpenJDK ?
|
||||
Class.forName("sun.font.FreetypeFontScaler") :
|
||||
Class.forName("sun.font.T2KFontScaler"));
|
||||
scalerClass = tmp;
|
||||
} catch (ClassNotFoundException e) {
|
||||
scalerClass = NullFontScaler.class;
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2014, 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
|
||||
@ -71,7 +71,7 @@ public final class FontUtilities {
|
||||
// This static initializer block figures out the OS constants.
|
||||
static {
|
||||
|
||||
AccessController.doPrivileged(new PrivilegedAction () {
|
||||
AccessController.doPrivileged(new PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
String osName = System.getProperty("os.name", "unknownOS");
|
||||
isSolaris = osName.startsWith("SunOS");
|
||||
@ -391,7 +391,7 @@ public final class FontUtilities {
|
||||
*/
|
||||
private static volatile
|
||||
SoftReference<ConcurrentHashMap<PhysicalFont, CompositeFont>>
|
||||
compMapRef = new SoftReference(null);
|
||||
compMapRef = new SoftReference<>(null);
|
||||
|
||||
public static FontUIResource getCompositeFontUIResource(Font font) {
|
||||
|
||||
@ -421,7 +421,7 @@ public final class FontUtilities {
|
||||
ConcurrentHashMap<PhysicalFont, CompositeFont> compMap = compMapRef.get();
|
||||
if (compMap == null) { // Its been collected.
|
||||
compMap = new ConcurrentHashMap<PhysicalFont, CompositeFont>();
|
||||
compMapRef = new SoftReference(compMap);
|
||||
compMapRef = new SoftReference<>(compMap);
|
||||
}
|
||||
CompositeFont compFont = compMap.get(physicalFont);
|
||||
if (compFont == null) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2014, 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
|
||||
@ -50,7 +50,7 @@ class FreetypeFontScaler extends FontScaler {
|
||||
initIDs(FreetypeFontScaler.class);
|
||||
}
|
||||
|
||||
private static native void initIDs(Class FFS);
|
||||
private static native void initIDs(Class<?> FFS);
|
||||
|
||||
private void invalidateScaler() throws FontScalerException {
|
||||
nativeScaler = 0;
|
||||
@ -69,7 +69,7 @@ class FreetypeFontScaler extends FontScaler {
|
||||
indexInCollection,
|
||||
supportsCJK,
|
||||
filesize);
|
||||
this.font = new WeakReference(font);
|
||||
this.font = new WeakReference<>(font);
|
||||
}
|
||||
|
||||
synchronized StrikeMetrics getFontMetrics(long pScalerContext)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2014, 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
|
||||
@ -92,7 +92,7 @@ public final class GlyphLayout {
|
||||
private ScriptRun _scriptRuns; // iterator over script runs
|
||||
private FontRunIterator _fontRuns; // iterator over physical fonts in a composite
|
||||
private int _ercount;
|
||||
private ArrayList _erecords;
|
||||
private ArrayList<EngineRecord> _erecords;
|
||||
private Point2D.Float _pt;
|
||||
private FontStrikeDesc _sd;
|
||||
private float[] _mat;
|
||||
@ -457,7 +457,7 @@ public final class GlyphLayout {
|
||||
// _sd.init(dtx, gtx, font.getStyle(), frc.isAntiAliased(), frc.usesFractionalMetrics());
|
||||
_sd = txinfo.sd;
|
||||
for (;ix != stop; ix += dir) {
|
||||
EngineRecord er = (EngineRecord)_erecords.get(ix);
|
||||
EngineRecord er = _erecords.get(ix);
|
||||
for (;;) {
|
||||
try {
|
||||
er.layout();
|
||||
@ -505,7 +505,7 @@ public final class GlyphLayout {
|
||||
this._textRecord = new TextRecord();
|
||||
this._scriptRuns = new ScriptRun();
|
||||
this._fontRuns = new FontRunIterator();
|
||||
this._erecords = new ArrayList(10);
|
||||
this._erecords = new ArrayList<>(10);
|
||||
this._pt = new Point2D.Float();
|
||||
this._sd = new FontStrikeDesc();
|
||||
this._mat = new float[4];
|
||||
@ -523,7 +523,7 @@ public final class GlyphLayout {
|
||||
er = new EngineRecord();
|
||||
_erecords.add(er);
|
||||
} else {
|
||||
er = (EngineRecord)_erecords.get(_ercount);
|
||||
er = _erecords.get(_ercount);
|
||||
}
|
||||
er.init(start, limit, font, script, lang, gmask);
|
||||
++_ercount;
|
||||
|
||||
@ -153,7 +153,7 @@ public class StandardGlyphVector extends GlyphVector {
|
||||
private AffineTransform invdtx; // inverse of dtx or null if dtx is identity
|
||||
private AffineTransform frctx; // font render context transform, wish we could just share it
|
||||
private Font2D font2D; // basic strike-independent stuff
|
||||
private SoftReference fsref; // font strike reference for glyphs with no per-glyph transform
|
||||
private SoftReference<GlyphStrike> fsref; // font strike reference for glyphs with no per-glyph transform
|
||||
|
||||
/////////////////////////////
|
||||
// Constructors and Factory methods
|
||||
@ -526,9 +526,9 @@ public class StandardGlyphVector extends GlyphVector {
|
||||
}
|
||||
|
||||
Shape[] lbcache;
|
||||
if (lbcacheRef == null || (lbcache = (Shape[])lbcacheRef.get()) == null) {
|
||||
if (lbcacheRef == null || (lbcache = lbcacheRef.get()) == null) {
|
||||
lbcache = new Shape[glyphs.length];
|
||||
lbcacheRef = new SoftReference(lbcache);
|
||||
lbcacheRef = new SoftReference<>(lbcache);
|
||||
}
|
||||
|
||||
Shape result = lbcache[ix];
|
||||
@ -568,7 +568,7 @@ public class StandardGlyphVector extends GlyphVector {
|
||||
|
||||
return result;
|
||||
}
|
||||
private SoftReference lbcacheRef;
|
||||
private SoftReference<Shape[]> lbcacheRef;
|
||||
|
||||
public Shape getGlyphVisualBounds(int ix) {
|
||||
if (ix < 0 || ix >= glyphs.length) {
|
||||
@ -576,9 +576,9 @@ public class StandardGlyphVector extends GlyphVector {
|
||||
}
|
||||
|
||||
Shape[] vbcache;
|
||||
if (vbcacheRef == null || (vbcache = (Shape[])vbcacheRef.get()) == null) {
|
||||
if (vbcacheRef == null || (vbcache = vbcacheRef.get()) == null) {
|
||||
vbcache = new Shape[glyphs.length];
|
||||
vbcacheRef = new SoftReference(vbcache);
|
||||
vbcacheRef = new SoftReference<>(vbcache);
|
||||
}
|
||||
|
||||
Shape result = vbcache[ix];
|
||||
@ -589,7 +589,7 @@ public class StandardGlyphVector extends GlyphVector {
|
||||
|
||||
return result;
|
||||
}
|
||||
private SoftReference vbcacheRef;
|
||||
private SoftReference<Shape[]> vbcacheRef;
|
||||
|
||||
public Rectangle getGlyphPixelBounds(int index, FontRenderContext renderFRC, float x, float y) {
|
||||
return getGlyphsPixelBounds(renderFRC, x, y, index, 1);
|
||||
@ -1230,14 +1230,14 @@ public class StandardGlyphVector extends GlyphVector {
|
||||
|
||||
private void clearCaches(int ix) {
|
||||
if (lbcacheRef != null) {
|
||||
Shape[] lbcache = (Shape[])lbcacheRef.get();
|
||||
Shape[] lbcache = lbcacheRef.get();
|
||||
if (lbcache != null) {
|
||||
lbcache[ix] = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (vbcacheRef != null) {
|
||||
Shape[] vbcache = (Shape[])vbcacheRef.get();
|
||||
Shape[] vbcache = vbcacheRef.get();
|
||||
if (vbcache != null) {
|
||||
vbcache[ix] = null;
|
||||
}
|
||||
@ -1357,11 +1357,11 @@ public class StandardGlyphVector extends GlyphVector {
|
||||
private GlyphStrike getDefaultStrike() {
|
||||
GlyphStrike gs = null;
|
||||
if (fsref != null) {
|
||||
gs = (GlyphStrike)fsref.get();
|
||||
gs = fsref.get();
|
||||
}
|
||||
if (gs == null) {
|
||||
gs = GlyphStrike.create(this, dtx, null);
|
||||
fsref = new SoftReference(gs);
|
||||
fsref = new SoftReference<>(gs);
|
||||
}
|
||||
return gs;
|
||||
}
|
||||
@ -1379,7 +1379,7 @@ public class StandardGlyphVector extends GlyphVector {
|
||||
StandardGlyphVector sgv; // reference back to glyph vector - yuck
|
||||
int[] indices; // index into unique strikes
|
||||
double[] transforms; // six doubles per unique transform, because AT is a pain to manipulate
|
||||
SoftReference strikesRef; // ref to unique strikes, one per transform
|
||||
SoftReference<GlyphStrike[]> strikesRef; // ref to unique strikes, one per transform
|
||||
boolean haveAllStrikes; // true if the strike array has been filled by getStrikes().
|
||||
|
||||
// used when first setting a transform
|
||||
@ -1653,12 +1653,12 @@ public class StandardGlyphVector extends GlyphVector {
|
||||
private GlyphStrike[] getStrikeArray() {
|
||||
GlyphStrike[] strikes = null;
|
||||
if (strikesRef != null) {
|
||||
strikes = (GlyphStrike[])strikesRef.get();
|
||||
strikes = strikesRef.get();
|
||||
}
|
||||
if (strikes == null) {
|
||||
haveAllStrikes = false;
|
||||
strikes = new GlyphStrike[transformCount() + 1];
|
||||
strikesRef = new SoftReference(strikes);
|
||||
strikesRef = new SoftReference<>(strikes);
|
||||
}
|
||||
|
||||
return strikes;
|
||||
|
||||
@ -65,7 +65,7 @@ public final class StrikeCache {
|
||||
|
||||
static final Unsafe unsafe = Unsafe.getUnsafe();
|
||||
|
||||
static ReferenceQueue refQueue = Disposer.getQueue();
|
||||
static ReferenceQueue<Object> refQueue = Disposer.getQueue();
|
||||
|
||||
static ArrayList<GlyphDisposedListener> disposeListeners = new ArrayList<GlyphDisposedListener>(1);
|
||||
|
||||
@ -159,7 +159,7 @@ public final class StrikeCache {
|
||||
}
|
||||
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
|
||||
/* Allow a client to override the reference type used to
|
||||
@ -378,11 +378,11 @@ public final class StrikeCache {
|
||||
}
|
||||
}
|
||||
|
||||
public static Reference getStrikeRef(FontStrike strike) {
|
||||
public static Reference<FontStrike> getStrikeRef(FontStrike strike) {
|
||||
return getStrikeRef(strike, cacheRefTypeWeak);
|
||||
}
|
||||
|
||||
public static Reference getStrikeRef(FontStrike strike, boolean weak) {
|
||||
public static Reference<FontStrike> getStrikeRef(FontStrike strike, boolean weak) {
|
||||
/* Some strikes may have no disposer as there's nothing
|
||||
* for them to free, as they allocated no native resource
|
||||
* eg, if they did not allocate resources because of a problem,
|
||||
@ -392,9 +392,9 @@ public final class StrikeCache {
|
||||
*/
|
||||
if (strike.disposer == null) {
|
||||
if (weak) {
|
||||
return new WeakReference(strike);
|
||||
return new WeakReference<>(strike);
|
||||
} else {
|
||||
return new SoftReference(strike);
|
||||
return new SoftReference<>(strike);
|
||||
}
|
||||
}
|
||||
|
||||
@ -410,7 +410,7 @@ public final class StrikeCache {
|
||||
}
|
||||
|
||||
static class SoftDisposerRef
|
||||
extends SoftReference implements DisposableStrike {
|
||||
extends SoftReference<FontStrike> implements DisposableStrike {
|
||||
|
||||
private FontStrikeDisposer disposer;
|
||||
|
||||
@ -418,15 +418,16 @@ public final class StrikeCache {
|
||||
return disposer;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
SoftDisposerRef(FontStrike strike) {
|
||||
super(strike, StrikeCache.refQueue);
|
||||
disposer = strike.disposer;
|
||||
Disposer.addReference(this, disposer);
|
||||
Disposer.addReference((Reference<Object>)(Reference)this, disposer);
|
||||
}
|
||||
}
|
||||
|
||||
static class WeakDisposerRef
|
||||
extends WeakReference implements DisposableStrike {
|
||||
extends WeakReference<FontStrike> implements DisposableStrike {
|
||||
|
||||
private FontStrikeDisposer disposer;
|
||||
|
||||
@ -434,10 +435,11 @@ public final class StrikeCache {
|
||||
return disposer;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
WeakDisposerRef(FontStrike strike) {
|
||||
super(strike, StrikeCache.refQueue);
|
||||
disposer = strike.disposer;
|
||||
Disposer.addReference(this, disposer);
|
||||
Disposer.addReference((Reference<Object>)(Reference)this, disposer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -197,9 +197,9 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
private static HashSet<String> missingFontFiles = null;
|
||||
private String defaultFontName;
|
||||
private String defaultFontFileName;
|
||||
protected HashSet registeredFontFiles = new HashSet();
|
||||
protected HashSet<String> registeredFontFiles = new HashSet<>();
|
||||
|
||||
private ArrayList badFonts;
|
||||
private ArrayList<String> badFonts;
|
||||
/* fontPath is the location of all fonts on the system, excluding the
|
||||
* JRE's own font directory but including any path specified using the
|
||||
* sun.java2d.fontpath property. Together with that property, it is
|
||||
@ -332,7 +332,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
static {
|
||||
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
|
||||
public Object run() {
|
||||
FontManagerNativeLibrary.load();
|
||||
@ -373,7 +373,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
|
||||
initJREFontMap();
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
File badFontFile =
|
||||
new File(jreFontDirName + File.separator +
|
||||
@ -381,7 +381,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
if (badFontFile.exists()) {
|
||||
FileInputStream fis = null;
|
||||
try {
|
||||
badFonts = new ArrayList();
|
||||
badFonts = new ArrayList<>();
|
||||
fis = new FileInputStream(badFontFile);
|
||||
InputStreamReader isr = new InputStreamReader(fis);
|
||||
BufferedReader br = new BufferedReader(isr);
|
||||
@ -1227,9 +1227,9 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
* and I don't know how to recover from there being absolutely
|
||||
* no fonts anywhere on the system.
|
||||
*/
|
||||
Iterator i = physicalFonts.values().iterator();
|
||||
Iterator<PhysicalFont> i = physicalFonts.values().iterator();
|
||||
if (i.hasNext()) {
|
||||
defaultPhysicalFont = (PhysicalFont)i.next();
|
||||
defaultPhysicalFont = i.next();
|
||||
} else {
|
||||
throw new Error("Probable fatal error:No fonts found.");
|
||||
}
|
||||
@ -1303,7 +1303,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
} else {
|
||||
filter = new TTorT1Filter();
|
||||
}
|
||||
return (String[])AccessController.doPrivileged(new PrivilegedAction() {
|
||||
return (String[])AccessController.doPrivileged(new PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
if (pathDirs.length == 1) {
|
||||
File dir = new File(pathDirs[0]);
|
||||
@ -1419,6 +1419,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
* them "MS UI Gothic" has no JA name whereas the other two do.
|
||||
* So not every font in these files is unmapped or new.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
HashMap<String,String> ffmapCopy =
|
||||
(HashMap<String,String>)(fontToFileMap.clone());
|
||||
for (String key : fontToFamilyNameMap.keySet()) {
|
||||
@ -1470,7 +1471,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
String name = unmappedFontNames.get(i);
|
||||
String familyName = fontToFamilyNameMap.get(name);
|
||||
if (familyName != null) {
|
||||
ArrayList family = familyToFontListMap.get(familyName);
|
||||
ArrayList<String> family = familyToFontListMap.get(familyName);
|
||||
if (family != null) {
|
||||
if (family.size() <= 1) {
|
||||
familyToFontListMap.remove(familyName);
|
||||
@ -1896,7 +1897,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
* to register those again, but we do want to register other registry
|
||||
* installed fonts.
|
||||
*/
|
||||
protected void registerOtherFontFiles(HashSet registeredFontFiles) {
|
||||
protected void registerOtherFontFiles(HashSet<String> registeredFontFiles) {
|
||||
if (getFullNameToFileMap().size() == 0) {
|
||||
return;
|
||||
}
|
||||
@ -2080,6 +2081,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
* name.
|
||||
*/
|
||||
if (_usingPerAppContextComposites) {
|
||||
@SuppressWarnings("unchecked")
|
||||
ConcurrentHashMap<String, Font2D> altNameCache =
|
||||
(ConcurrentHashMap<String, Font2D>)
|
||||
AppContext.getAppContext().get(CompositeFont.class);
|
||||
@ -2304,10 +2306,15 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
nameTable = createdByFullName;
|
||||
} else {
|
||||
AppContext appContext = AppContext.getAppContext();
|
||||
familyTable =
|
||||
@SuppressWarnings("unchecked")
|
||||
Hashtable<String,FontFamily> tmp1 =
|
||||
(Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
|
||||
nameTable =
|
||||
familyTable = tmp1;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
Hashtable<String, Font2D> tmp2 =
|
||||
(Hashtable<String,Font2D>)appContext.get(regFullNameKey);
|
||||
nameTable = tmp2;
|
||||
}
|
||||
|
||||
family = familyTable.get(lowerCaseName);
|
||||
@ -2467,7 +2474,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
} catch (FontFormatException e) {
|
||||
if (isCopy) {
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
if (_tracker != null) {
|
||||
_tracker.subBytes((int)fFile.length());
|
||||
@ -2492,7 +2499,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
final Runnable fileCloserRunnable = new Runnable() {
|
||||
public void run() {
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
|
||||
for (int i=0;i<CHANNELPOOLSIZE;i++) {
|
||||
@ -2521,7 +2528,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
}
|
||||
};
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
/* The thread must be a member of a thread group
|
||||
* which will not get GCed before VM exit.
|
||||
@ -2627,15 +2634,17 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
fullNameToFont.remove(oldFont.fullName.toLowerCase(Locale.ENGLISH));
|
||||
FontFamily.remove(oldFont);
|
||||
if (localeFullNamesToFont != null) {
|
||||
Map.Entry[] mapEntries = localeFullNamesToFont.entrySet().
|
||||
toArray(new Map.Entry[0]);
|
||||
Map.Entry<?, ?>[] mapEntries = localeFullNamesToFont.entrySet().
|
||||
toArray(new Map.Entry<?, ?>[0]);
|
||||
/* Should I be replacing these, or just I just remove
|
||||
* the names from the map?
|
||||
*/
|
||||
for (int i=0; i<mapEntries.length;i++) {
|
||||
if (mapEntries[i].getValue() == oldFont) {
|
||||
try {
|
||||
mapEntries[i].setValue(newFont);
|
||||
@SuppressWarnings("unchecked")
|
||||
Map.Entry<String, PhysicalFont> tmp = (Map.Entry<String, PhysicalFont>)mapEntries[i];
|
||||
tmp.setValue(newFont);
|
||||
} catch (Exception e) {
|
||||
/* some maps don't support this operation.
|
||||
* In this case just give up and remove the entry.
|
||||
@ -2864,7 +2873,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
private static boolean maybeMultiAppContext() {
|
||||
Boolean appletSM = (Boolean)
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
SecurityManager sm = System.getSecurityManager();
|
||||
return new Boolean
|
||||
@ -3055,10 +3064,15 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
fontsAreRegistered = true;
|
||||
} else {
|
||||
AppContext appContext = AppContext.getAppContext();
|
||||
familyTable =
|
||||
@SuppressWarnings("unchecked")
|
||||
Hashtable<String,FontFamily> tmp1 =
|
||||
(Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
|
||||
fullNameTable =
|
||||
familyTable = tmp1;
|
||||
@SuppressWarnings("unchecked")
|
||||
Hashtable<String,Font2D> tmp2 =
|
||||
(Hashtable<String,Font2D>)appContext.get(regFullNameKey);
|
||||
fullNameTable = tmp2;
|
||||
|
||||
if (familyTable == null) {
|
||||
familyTable = new Hashtable<String,FontFamily>();
|
||||
fullNameTable = new Hashtable<String,Font2D>();
|
||||
@ -3114,8 +3128,10 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
familyTable = createdByFamilyName;
|
||||
} else if (fontsAreRegisteredPerAppContext) {
|
||||
AppContext appContext = AppContext.getAppContext();
|
||||
familyTable =
|
||||
@SuppressWarnings("unchecked")
|
||||
Hashtable<String,FontFamily> tmp =
|
||||
(Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
|
||||
familyTable = tmp;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
@ -3142,8 +3158,10 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
nameTable = createdByFullName;
|
||||
} else if (fontsAreRegisteredPerAppContext) {
|
||||
AppContext appContext = AppContext.getAppContext();
|
||||
nameTable =
|
||||
@SuppressWarnings("unchecked")
|
||||
Hashtable<String,Font2D> tmp =
|
||||
(Hashtable<String,Font2D>)appContext.get(regFullNameKey);
|
||||
nameTable = tmp;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
@ -3305,7 +3323,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
initialiseDeferredFonts();
|
||||
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
if (fontPath == null) {
|
||||
fontPath = getPlatformFontPath(noType1Font);
|
||||
@ -3440,7 +3458,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
FontUtilities.getLogger().info("loadAllFontFiles() called");
|
||||
}
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
if (fontPath == null) {
|
||||
fontPath = getPlatformFontPath(noType1Font);
|
||||
@ -3682,7 +3700,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
public Font[] getAllInstalledFonts() {
|
||||
if (allFonts == null) {
|
||||
loadFonts();
|
||||
TreeMap fontMapNames = new TreeMap();
|
||||
TreeMap<String, Font2D> fontMapNames = new TreeMap<>();
|
||||
/* warning: the number of composite fonts could change dynamically
|
||||
* if applications are allowed to create them. "allfonts" could
|
||||
* then be stale.
|
||||
@ -3715,7 +3733,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
Font[] fonts = new Font[fontNames.length];
|
||||
for (int i=0; i < fontNames.length; i++) {
|
||||
fonts[i] = new Font(fontNames[i], Font.PLAIN, 1);
|
||||
Font2D f2d = (Font2D)fontMapNames.get(fontNames[i]);
|
||||
Font2D f2d = fontMapNames.get(fontNames[i]);
|
||||
if (f2d != null) {
|
||||
FontAccess.getFontAccess().setFont2D(fonts[i], f2d.handle);
|
||||
}
|
||||
@ -3798,7 +3816,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
|
||||
public void register1dot0Fonts() {
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
String type1Dir = "/usr/openwin/lib/X11/fonts/Type1";
|
||||
registerFontsInDir(type1Dir, true, Font2D.TYPE1_RANK,
|
||||
@ -3840,7 +3858,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
|
||||
if (systemLocale == null) {
|
||||
systemLocale = (Locale)
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
/* On windows the system locale may be different than the
|
||||
* user locale. This is an unsupported configuration, but
|
||||
|
||||
@ -129,13 +129,13 @@ public final class SunLayoutEngine implements LayoutEngine, LayoutEngineFactory
|
||||
|
||||
// !!! don't need this unless we have more than one sun layout engine...
|
||||
public LayoutEngine getEngine(LayoutEngineKey key) {
|
||||
ConcurrentHashMap cache = (ConcurrentHashMap)cacheref.get();
|
||||
ConcurrentHashMap<LayoutEngineKey, LayoutEngine> cache = cacheref.get();
|
||||
if (cache == null) {
|
||||
cache = new ConcurrentHashMap();
|
||||
cacheref = new SoftReference(cache);
|
||||
cache = new ConcurrentHashMap<>();
|
||||
cacheref = new SoftReference<>(cache);
|
||||
}
|
||||
|
||||
LayoutEngine e = (LayoutEngine)cache.get(key);
|
||||
LayoutEngine e = cache.get(key);
|
||||
if (e == null) {
|
||||
LayoutEngineKey copy = key.copy();
|
||||
e = new SunLayoutEngine(copy);
|
||||
@ -143,7 +143,8 @@ public final class SunLayoutEngine implements LayoutEngine, LayoutEngineFactory
|
||||
}
|
||||
return e;
|
||||
}
|
||||
private SoftReference cacheref = new SoftReference(null);
|
||||
private SoftReference<ConcurrentHashMap<LayoutEngineKey, LayoutEngine>> cacheref =
|
||||
new SoftReference<>(null);
|
||||
|
||||
private SunLayoutEngine(LayoutEngineKey key) {
|
||||
this.key = key;
|
||||
|
||||
@ -290,7 +290,7 @@ public class TrueTypeFont extends FileFont {
|
||||
try {
|
||||
RandomAccessFile raf = (RandomAccessFile)
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
try {
|
||||
return new RandomAccessFile(platName, "r");
|
||||
@ -1546,7 +1546,7 @@ public class TrueTypeFont extends FileFont {
|
||||
* during typical start-up and the information here is likely never
|
||||
* needed.
|
||||
*/
|
||||
protected void initAllNames(int requestedID, HashSet names) {
|
||||
protected void initAllNames(int requestedID, HashSet<String> names) {
|
||||
|
||||
byte[] name = new byte[256];
|
||||
ByteBuffer buffer = getTableBuffer(nameTag);
|
||||
@ -1584,23 +1584,23 @@ public class TrueTypeFont extends FileFont {
|
||||
}
|
||||
|
||||
String[] getAllFamilyNames() {
|
||||
HashSet aSet = new HashSet();
|
||||
HashSet<String> aSet = new HashSet<>();
|
||||
try {
|
||||
initAllNames(FAMILY_NAME_ID, aSet);
|
||||
} catch (Exception e) {
|
||||
/* In case of malformed font */
|
||||
}
|
||||
return (String[])aSet.toArray(new String[0]);
|
||||
return aSet.toArray(new String[0]);
|
||||
}
|
||||
|
||||
String[] getAllFullNames() {
|
||||
HashSet aSet = new HashSet();
|
||||
HashSet<String> aSet = new HashSet<>();
|
||||
try {
|
||||
initAllNames(FULL_NAME_ID, aSet);
|
||||
} catch (Exception e) {
|
||||
/* In case of malformed font */
|
||||
}
|
||||
return (String[])aSet.toArray(new String[0]);
|
||||
return aSet.toArray(new String[0]);
|
||||
}
|
||||
|
||||
/* Used by the OpenType engine for mark positioning.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2014, 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
|
||||
@ -86,7 +86,7 @@ public class Type1Font extends FileFont {
|
||||
|
||||
public synchronized void dispose() {
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
|
||||
if (fileName != null) {
|
||||
@ -98,16 +98,16 @@ public class Type1Font extends FileFont {
|
||||
}
|
||||
}
|
||||
|
||||
WeakReference bufferRef = new WeakReference(null);
|
||||
WeakReference<Object> bufferRef = new WeakReference<>(null);
|
||||
|
||||
private String psName = null;
|
||||
|
||||
static private HashMap styleAbbreviationsMapping;
|
||||
static private HashSet styleNameTokes;
|
||||
static private HashMap<String, String> styleAbbreviationsMapping;
|
||||
static private HashSet<String> styleNameTokes;
|
||||
|
||||
static {
|
||||
styleAbbreviationsMapping = new HashMap();
|
||||
styleNameTokes = new HashSet();
|
||||
styleAbbreviationsMapping = new HashMap<>();
|
||||
styleNameTokes = new HashSet<>();
|
||||
|
||||
/* These abbreviation rules are taken from Appendix 1 of Adobe Technical Note #5088 */
|
||||
/* NB: this list is not complete - we did not include abbreviations which contain
|
||||
@ -192,7 +192,7 @@ public class Type1Font extends FileFont {
|
||||
try {
|
||||
RandomAccessFile raf = (RandomAccessFile)
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
try {
|
||||
return new RandomAccessFile(platName, "r");
|
||||
@ -205,7 +205,7 @@ public class Type1Font extends FileFont {
|
||||
fileSize = (int)fc.size();
|
||||
mapBuf = fc.map(FileChannel.MapMode.READ_ONLY, 0, fileSize);
|
||||
mapBuf.position(0);
|
||||
bufferRef = new WeakReference(mapBuf);
|
||||
bufferRef = new WeakReference<>(mapBuf);
|
||||
fc.close();
|
||||
} catch (NullPointerException e) {
|
||||
throw new FontFormatException(e.toString());
|
||||
@ -232,7 +232,7 @@ public class Type1Font extends FileFont {
|
||||
try {
|
||||
raf = (RandomAccessFile)
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
try {
|
||||
return new RandomAccessFile(platName, "r");
|
||||
@ -474,7 +474,7 @@ public class Type1Font extends FileFont {
|
||||
|
||||
private String expandAbbreviation(String abbr) {
|
||||
if (styleAbbreviationsMapping.containsKey(abbr))
|
||||
return (String) styleAbbreviationsMapping.get(abbr);
|
||||
return styleAbbreviationsMapping.get(abbr);
|
||||
return abbr;
|
||||
}
|
||||
|
||||
|
||||
@ -47,8 +47,9 @@ import java.util.Hashtable;
|
||||
* @see DisposerRecord
|
||||
*/
|
||||
public class Disposer implements Runnable {
|
||||
private static final ReferenceQueue queue = new ReferenceQueue();
|
||||
private static final Hashtable records = new Hashtable();
|
||||
private static final ReferenceQueue<Object> queue = new ReferenceQueue<>();
|
||||
private static final Hashtable<java.lang.ref.Reference<Object>, DisposerRecord> records =
|
||||
new Hashtable<>();
|
||||
|
||||
private static Disposer disposerInstance;
|
||||
public static final int WEAK = 0;
|
||||
@ -77,7 +78,7 @@ public class Disposer implements Runnable {
|
||||
}
|
||||
disposerInstance = new Disposer();
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
new java.security.PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
/* The thread must be a member of a thread group
|
||||
* which will not get GCed before VM exit.
|
||||
@ -135,11 +136,11 @@ public class Disposer implements Runnable {
|
||||
if (target instanceof DisposerTarget) {
|
||||
target = ((DisposerTarget)target).getDisposerReferent();
|
||||
}
|
||||
java.lang.ref.Reference ref;
|
||||
java.lang.ref.Reference<Object> ref;
|
||||
if (refType == PHANTOM) {
|
||||
ref = new PhantomReference(target, queue);
|
||||
ref = new PhantomReference<>(target, queue);
|
||||
} else {
|
||||
ref = new WeakReference(target, queue);
|
||||
ref = new WeakReference<>(target, queue);
|
||||
}
|
||||
records.put(ref, rec);
|
||||
}
|
||||
@ -149,7 +150,7 @@ public class Disposer implements Runnable {
|
||||
try {
|
||||
Object obj = queue.remove();
|
||||
((Reference)obj).clear();
|
||||
DisposerRecord rec = (DisposerRecord)records.remove(obj);
|
||||
DisposerRecord rec = records.remove(obj);
|
||||
rec.dispose();
|
||||
obj = null;
|
||||
rec = null;
|
||||
@ -214,7 +215,7 @@ public class Disposer implements Runnable {
|
||||
&& freed < 10000 && deferred < 100) {
|
||||
freed++;
|
||||
((Reference)obj).clear();
|
||||
DisposerRecord rec = (DisposerRecord)records.remove(obj);
|
||||
DisposerRecord rec = records.remove(obj);
|
||||
if (rec instanceof PollDisposable) {
|
||||
rec.dispose();
|
||||
obj = null;
|
||||
@ -247,17 +248,18 @@ public class Disposer implements Runnable {
|
||||
* so will clutter the records hashmap and no one will be cleaning up
|
||||
* the reference queue.
|
||||
*/
|
||||
public static void addReference(Reference ref, DisposerRecord rec) {
|
||||
@SuppressWarnings("unchecked")
|
||||
public static void addReference(Reference<Object> ref, DisposerRecord rec) {
|
||||
records.put(ref, rec);
|
||||
}
|
||||
|
||||
public static void addObjectRecord(Object obj, DisposerRecord rec) {
|
||||
records.put(new WeakReference(obj, queue) , rec);
|
||||
records.put(new WeakReference<>(obj, queue) , rec);
|
||||
}
|
||||
|
||||
/* This is intended for use in conjunction with addReference(..)
|
||||
*/
|
||||
public static ReferenceQueue getQueue() {
|
||||
public static ReferenceQueue<Object> getQueue() {
|
||||
return queue;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user