Normalized C and Java definition of isDimDefined.

The JavaScript implementation of isDimDefined contains a check to ensure
that the dimension value is positive; the C and Java versions did not
have this check. As a result, a negative style value for 'width' (such
as that used by the "should layout node with negative width" test) would
have different layout under the C/Java implementation to the JavaScript
implementation.

This was hidden because the C/Java transpilers filtered out any negative
instantiation values from the test suite. In effect, the negative value
tests weren't running on the C/Java implementation.

This patch removes the negative value filter from the transpiler, and
makes the isDimDefined definition consistent between the three
implementations.
This commit is contained in:
Russell Keith-Magee
2015-03-22 14:36:16 +08:00
parent f5850b56e5
commit 8f6a96adbc
5 changed files with 29 additions and 25 deletions

View File

@@ -287,7 +287,8 @@ static float getDimWithMargin(css_node_t *node, css_flex_direction_t axis) {
}
static bool isDimDefined(css_node_t *node, css_flex_direction_t axis) {
return !isUndefined(node->style.dimensions[dim[axis]]);
float value = node->style.dimensions[dim[axis]];
return !isUndefined(value) && value > 0.0;
}
static bool isPosDefined(css_node_t *node, css_position_t position) {