From 62e795a4d7795604a21c78407a3d141417deb6fb Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 26 Jun 2020 13:11:50 -0400 Subject: [PATCH] v0.8.1: fixed a NPE when fonts are reset before being initialized --- .../android/AndroidPlatformSupport.java | 26 ++++++++++--------- .../desktop/DesktopPlatformSupport.java | 26 ++++++++++--------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java index 76778b86d..f87930626 100644 --- a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java +++ b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java @@ -309,21 +309,23 @@ public class AndroidPlatformSupport extends PlatformSupport { @Override public void resetGenerators() { - for (FreeTypeFontGenerator generator : fonts.keySet()){ - for (BitmapFont f : fonts.get(generator).values()){ - f.dispose(); + if (fonts != null) { + for (FreeTypeFontGenerator generator : fonts.keySet()) { + for (BitmapFont f : fonts.get(generator).values()) { + f.dispose(); + } + fonts.get(generator).clear(); + generator.dispose(); } - fonts.get(generator).clear(); - generator.dispose(); - } - fonts.clear(); - if (packer != null){ - for (PixmapPacker.Page p : packer.getPages()){ - p.getTexture().dispose(); + fonts.clear(); + if (packer != null) { + for (PixmapPacker.Page p : packer.getPages()) { + p.getTexture().dispose(); + } + packer.dispose(); } - packer.dispose(); + fonts = null; } - fonts = null; setupFontGenerators(pageSize, systemfont); } diff --git a/desktop/src/main/java/com/shatteredpixel/shatteredpixeldungeon/desktop/DesktopPlatformSupport.java b/desktop/src/main/java/com/shatteredpixel/shatteredpixeldungeon/desktop/DesktopPlatformSupport.java index 3e48a65b0..729679158 100644 --- a/desktop/src/main/java/com/shatteredpixel/shatteredpixeldungeon/desktop/DesktopPlatformSupport.java +++ b/desktop/src/main/java/com/shatteredpixel/shatteredpixeldungeon/desktop/DesktopPlatformSupport.java @@ -135,21 +135,23 @@ public class DesktopPlatformSupport extends PlatformSupport { @Override public void resetGenerators() { - for (FreeTypeFontGenerator generator : fonts.keySet()){ - for (BitmapFont f : fonts.get(generator).values()){ - f.dispose(); + if (fonts != null) { + for (FreeTypeFontGenerator generator : fonts.keySet()) { + for (BitmapFont f : fonts.get(generator).values()) { + f.dispose(); + } + fonts.get(generator).clear(); + generator.dispose(); } - fonts.get(generator).clear(); - generator.dispose(); - } - fonts.clear(); - if (packer != null){ - for (PixmapPacker.Page p : packer.getPages()){ - p.getTexture().dispose(); + fonts.clear(); + if (packer != null) { + for (PixmapPacker.Page p : packer.getPages()) { + p.getTexture().dispose(); + } + packer.dispose(); } - packer.dispose(); + fonts = null; } - fonts = null; setupFontGenerators(pageSize, systemfont); }