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); } }