From b7bfaab63dd12f7f8dbf503416dba4449d7531d4 Mon Sep 17 00:00:00 2001 From: Mikael Sand Date: Sat, 22 Jul 2017 03:00:15 +0300 Subject: [PATCH] Cache textRoot for getTextRootGlyphContext. Use getTextRootGlyphContext() instead of getTextRoot().getGlyphContext() in TextShadowNode.pushGlyphContext() --- android/src/main/java/com/horcrux/svg/GroupShadowNode.java | 6 +++++- android/src/main/java/com/horcrux/svg/TextShadowNode.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/horcrux/svg/GroupShadowNode.java b/android/src/main/java/com/horcrux/svg/GroupShadowNode.java index 72173c3b..d26d485b 100644 --- a/android/src/main/java/com/horcrux/svg/GroupShadowNode.java +++ b/android/src/main/java/com/horcrux/svg/GroupShadowNode.java @@ -29,6 +29,7 @@ class GroupShadowNode extends RenderableShadowNode { @Nullable ReadableMap mFont; private GlyphContext mGlyphContext; + private GroupShadowNode textRoot; @ReactProp(name = "font") public void setFont(@Nullable ReadableMap font) { @@ -47,7 +48,10 @@ class GroupShadowNode extends RenderableShadowNode { } GlyphContext getTextRootGlyphContext() { - return getTextRoot().getGlyphContext(); + if (textRoot == null) { + textRoot = getTextRoot(); + } + return textRoot.getGlyphContext(); } void pushGlyphContext() { diff --git a/android/src/main/java/com/horcrux/svg/TextShadowNode.java b/android/src/main/java/com/horcrux/svg/TextShadowNode.java index 1bf6446f..e0ff8a41 100644 --- a/android/src/main/java/com/horcrux/svg/TextShadowNode.java +++ b/android/src/main/java/com/horcrux/svg/TextShadowNode.java @@ -178,6 +178,6 @@ class TextShadowNode extends GroupShadowNode { @Override void pushGlyphContext() { boolean isTextNode = !(this instanceof TextPathShadowNode) && !(this instanceof TSpanShadowNode); - getTextRoot().getGlyphContext().pushContext(this, mFont, mRotate, mDeltaX, mDeltaY, mPositionX, mPositionY, isTextNode); + getTextRootGlyphContext().pushContext(this, mFont, mRotate, mDeltaX, mDeltaY, mPositionX, mPositionY, isTextNode); } }