Allow decimal measurements on java
Summary: Preserve floating point values when passing them across the JNI bridge. Differential Revision: D4366605 fbshipit-source-id: 0b94ee87a03a6ed918360dd9998930e780fc865d
This commit is contained in:
committed by
Facebook Github Bot
parent
f2080e520f
commit
352f592767
@@ -67,10 +67,13 @@ static YGSize YGJNIMeasureFunc(YGNodeRef node,
|
||||
static_assert(sizeof(measureResult) == 8,
|
||||
"Expected measureResult to be 8 bytes, or two 32 bit ints");
|
||||
|
||||
const float measuredWidth = static_cast<float>(0xFFFFFFFF & (measureResult >> 32));
|
||||
const float measuredHeight = static_cast<float>(0xFFFFFFFF & measureResult);
|
||||
int32_t wBits = 0xFFFFFFFF & (measureResult >> 32);
|
||||
int32_t hBits = 0xFFFFFFFF & measureResult;
|
||||
|
||||
return YGSize{measuredWidth, measuredHeight};
|
||||
const float *measuredWidth = reinterpret_cast<float*>(&wBits);
|
||||
const float *measuredHeight = reinterpret_cast<float*>(&hBits);
|
||||
|
||||
return YGSize{*measuredWidth, *measuredHeight};
|
||||
} else {
|
||||
YGLog(YGLogLevelError, "Java YGNode was GCed during layout calculation\n");
|
||||
return YGSize{
|
||||
|
Reference in New Issue
Block a user