Fix RCTText crashing when negative width is passed to measure
Reviewed By: sriramramani Differential Revision: D3038767 fb-gh-sync-id: ad3fde7cf4b73aad786bdf1dc3cea24862d656b8 shipit-source-id: ad3fde7cf4b73aad786bdf1dc3cea24862d656b8
This commit is contained in:
parent
3833c1b751
commit
c42fc61a2a
|
@ -205,8 +205,12 @@ public class ReactTextShadowNode extends LayoutShadowNode {
|
|||
float desiredWidth = boring == null ?
|
||||
Layout.getDesiredWidth(text, textPaint) : Float.NaN;
|
||||
|
||||
// technically, width should never be negative, but there is currently a bug in
|
||||
// LayoutEngine where a negative value can be passed.
|
||||
boolean unconstrainedWidth = CSSConstants.isUndefined(width) || width < 0;
|
||||
|
||||
if (boring == null &&
|
||||
(CSSConstants.isUndefined(width) ||
|
||||
(unconstrainedWidth ||
|
||||
(!CSSConstants.isUndefined(desiredWidth) && desiredWidth <= width))) {
|
||||
// Is used when the width is not known and the text is not boring, ie. if it contains
|
||||
// unicode characters.
|
||||
|
@ -218,7 +222,7 @@ public class ReactTextShadowNode extends LayoutShadowNode {
|
|||
1,
|
||||
0,
|
||||
true);
|
||||
} else if (boring != null && (CSSConstants.isUndefined(width) || boring.width <= width)) {
|
||||
} else if (boring != null && (unconstrainedWidth || boring.width <= width)) {
|
||||
// Is used for single-line, boring text when the width is either unknown or bigger
|
||||
// than the width of the text.
|
||||
layout = BoringLayout.make(
|
||||
|
|
Loading…
Reference in New Issue