Summary: Expose a function which marks all descendants dirty
Reviewed By: emilsjolander
Differential Revision: D6911869
fbshipit-source-id: e0a3abcf5653f921297edfdca473d83b947cc627
Summary: While moving a function as a method in YGNode, there was an error in which I mistakenly called a method on node, whereas I had to call it on child.
Reviewed By: emilsjolander
Differential Revision: D6918367
fbshipit-source-id: cee90e015f9e45a717a7307f59fd3b9ef6f399b6
Summary: There was a slight error in main axis justification which caused the regression
Reviewed By: emilsjolander
Differential Revision: D6923178
fbshipit-source-id: d8f81b06d9127c75daecffb73b5e6c5abbad8ade
Summary: Moved margin axis function as a method in YGNode
Reviewed By: emilsjolander
Differential Revision: D6900003
fbshipit-source-id: a42da3bcd3126bf8c432c6740987b5ec0b572172
Summary: Moved trailing padding and border function as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6899571
fbshipit-source-id: 7f686e8771d5a94aae502191516557b20c557d7c
Summary: Moved out main axis justification logic to seperate function
Reviewed By: emilsjolander
Differential Revision: D6845997
fbshipit-source-id: fdb64e00de39427ce1d66d4fbfd06c23c0d32bcf
Summary: Made a separate function for resolving flexible length
Reviewed By: emilsjolander
Differential Revision: D6834269
fbshipit-source-id: 954bc7fe8eb9256d353cdda27e5c64c076808e25
Summary: Added a separate function which does the second pass to distribute the free space amongst the views which can be flexed.
Reviewed By: emilsjolander
Differential Revision: D6833635
fbshipit-source-id: 7680a67db8bfe22f8fb86407159888882f3a3353
Summary: Added a function which does the first pass to determine the free space based on flex items whose min and max constraints are triggered
Reviewed By: emilsjolander
Differential Revision: D6819719
fbshipit-source-id: e5e77c21d1dca2255433da3388887d9db3f7b642
Summary: Moved out logic to calculate size consumed on a line into seperate function
Reviewed By: emilsjolander
Differential Revision: D6797640
fbshipit-source-id: ad9757e7d603c0ce57f452b1e5c404037605bed9
Summary: Check if the layout tree is different if we do not use legacy flags. If they are different then report to the client
Reviewed By: emilsjolander
Differential Revision: D6856812
fbshipit-source-id: e4724d80702cc75c1894e348e137b24e663573d2
Summary: Since a `YGNodeRef` is created with `new`, it needs to be deleted using `delete` instead of `free`.
Reviewed By: richardjrossiii
Differential Revision: D6866064
fbshipit-source-id: a44828cedb5045b6c97179fb30ffd8c8dafcbfbe
Summary: Currently in the flexbox algorithm we were using linked list for maintaining the nodes which had relative/absolute position types, this diff uses STL vector instead of linked list.
Reviewed By: emilsjolander
Differential Revision: D6722959
fbshipit-source-id: 4e81176802b9a9319bc5f385c824a06be14a83a2
Summary:
@public
Trivial. Those lines were lost during rebasing of the original commit.
Reviewed By: priteshrnandgaonkar
Differential Revision: D6717696
fbshipit-source-id: a5dce25427c8977352b3ae7ea01e546a540e0c13
Summary: Moved leadingpaddingnandborder function as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6711991
fbshipit-source-id: 41ad7191bf8df6fe3131106436dc0c87e9dee297
Summary: Move trailing padding function as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6711897
fbshipit-source-id: fa2e1a8e31242358a6e94aef51368e2c2c58b79d
Summary: Moved leading padding function as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6711830
fbshipit-source-id: d2f6f55ec23b007bb51f8a91385e02236f46dc7b
Summary: Resolve direction function is now as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6711755
fbshipit-source-id: a0e80596e10f0c7fb7a31b75377da4db846c4bbb
Summary: Move trailing border function as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6711666
fbshipit-source-id: fe4fdfc2db59d03beb763317e1a6f9de52f851d4
Summary: Move leading border function as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6711523
fbshipit-source-id: 76e90083a9dd0728dc9557cc3b0a1f431f3afd5d
Summary: Moved YGNodeIsFlex as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6711536
fbshipit-source-id: e60be7da55e3e8d254eb253c141d219a37a76087
Summary: Previously flexbasis calculation was doing more than one task of accumulating absolutelypositioned child and flexbasis calculation. So this diff refactors the logic and moves out absolutely positioned child calculation to our step 1(which is calculating the variables which are required for rest of the algorithm). This diff also moves the flexbasis logic into separate function
Reviewed By: emilsjolander
Differential Revision: D6702749
fbshipit-source-id: 15dcc94ae30ac185e4d1c7d6e3744a40cfa47317
Summary: Refactored the logic to calculate available main and cross dimensions
Reviewed By: emilsjolander
Differential Revision: D6693777
fbshipit-source-id: d6c87670e74bdc22b32916c2d77fe423d831b378
Summary: Moved setPosition as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6683387
fbshipit-source-id: 83f64101faa700933771c69b222056ec2a6b8d1e
Summary: Moved trailingmargin function as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6683313
fbshipit-source-id: 5ee458c2f4698768724901df0e3f5d8805c7c8f5
Summary: Moved getLeadingMargin as a function on YGNode
Reviewed By: emilsjolander
Differential Revision: D6683270
fbshipit-source-id: a26663006419e13cb783e9849183e3c665f59b3c
Summary: Moved getTrailingPosition function as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6683205
fbshipit-source-id: d30003d90d634c644d92c833e58165b073d4d13e
Summary: Moved is isTrailingPos defined as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6683190
fbshipit-source-id: c37e57d02cc4475eb8181a2bb003c555bdb0aaea
Summary: Moved isLeadingPos defined as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6682956
fbshipit-source-id: 31c60e0eae906e1434a6969f3cd786fcaf9097a5
Summary: Moved YGNodeLeading position as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6682929
fbshipit-source-id: 3607aab1544b62b1126c5d75b2f6fb8f5ca2d45f
Summary: There were warnings of castings and null pointer handling in yoga.cpp. This diff fixes the warnings. The issue was brought up here https://github.com/facebook/react-native/issues/17274
Reviewed By: emilsjolander
Differential Revision: D6675111
fbshipit-source-id: 884659fabb05033b4d43d3aa6629e22481d39b7e
Summary: Moved YGResolveFlexGrow as a method on YGNode
Reviewed By: emilsjolander
Differential Revision: D6611385
fbshipit-source-id: 71660946c469fac77c5ffa0284c793e6adc9db7b
Summary: Moved YGNodeMarkDirtyInternal as a method in YGNode
Reviewed By: emilsjolander
Differential Revision: D6611287
fbshipit-source-id: 54402145d51ea717553ea136be739b9880a79817
Summary:
- Removed the default() static method, instead of this, its zero argument initialiser is used
- Moved `YGCloneChildrenIfNeeded` to `cloneChildrenIfNeeded` as a method on `YGNode`.
Reviewed By: emilsjolander
Differential Revision: D6611155
fbshipit-source-id: 463723a363e0fbd2c7686f65226eca73236bd07e
Summary: With this flag the the workflow successfully passed.
Reviewed By: emilsjolander
Differential Revision: D6619293
fbshipit-source-id: c1632efd97f47696b7f8bb1b3e763de92c707287
Summary: Moved c implementation of `YGNode` to C++ struct. Not moving to C++ class as the React Classes dependent on `Yoga.h` assume it to be C. Thats why keeping `Yoga.h` C compatible. Sorry for the long diff, didn't thought that it will turn out to be this much big.Will keep an eye on number of lines next time 😉
Reviewed By: emilsjolander
Differential Revision: D6592257
fbshipit-source-id: 641e8b9462ad00731a094511f9f5608b23a6bb21
Summary:
GCC internally aliases isnan and a dozen other math.h primitives to their `__builtin_` counterparts, which compile straight to assembler. Clang does not do this, so calls to `isnan` compile to a function call. The Android libc does not define `isnan` because it assumes all application code compiled `__builtin_isnan` and has no need for the function `isnan`.
This is a temporary kludge: Starting with NDK r16, the math.h header has appropriate `#defines` to alias primitives to their `__builtin_` counterparts. Upon upgrade to NDK r16, this can be reverted.
Reviewed By: passy
Differential Revision: D6527499
fbshipit-source-id: 65d9e43c7e7d973a6c92e9863ebe469b35a24ac8
Summary:
Use clang-5.0 -Oz as default NDK compiler for android.
It does 3 good things:
* brings us into compliance with deprecation of gcc for android NDKs since r13
* yields slightly smaller native code, on the order of many-10s-to-small-100s of KB
* slight improvement in startup performance, on the order of 10s of ms
Reviewed By: mzlee
Differential Revision: D6155682
fbshipit-source-id: 2f64e742f4dc44be171274c2ad0a41fb1e7079d7
Summary:
Fix min/max percentage constraints on measured nodes. Currently we passed in the available size instead of the parent size.
Fixes#611
Closes https://github.com/facebook/yoga/pull/649
Reviewed By: priteshrnandgaonkar
Differential Revision: D6408019
Pulled By: emilsjolander
fbshipit-source-id: 18be5056dbc0dc179970ec231ab8b4e2cdba65c5
Summary:
Suppresses the unused warnings on ```YGDefaultLog```. It uses a more generic macro which simply casts the variable to ```(void)```. This is the simples approach to make mutiple different compilers happy. Fixes#650
Closes https://github.com/facebook/yoga/pull/651
Differential Revision: D6407999
Pulled By: emilsjolander
fbshipit-source-id: 19fd78dd8b84eafdbb48875dd003d506a98c4807
Summary:
If you have a measurable node and set ```marign-left: auto``` + ```align-item:stretch``` on it, it won't get measured and they get a width/height of ```-(nan)```. This change fixes that behaviour. Fixes#644.
Closes https://github.com/facebook/yoga/pull/645
Differential Revision: D6413512
Pulled By: emilsjolander
fbshipit-source-id: 755febeb33bb0d4520ca6b3c28d56ac333e4a14d
Summary:
Adds new ```space-evenly``` for ```justify-content```.
Also adds a typofix in one of the other justify-content tests.
Fixes#657
Closes https://github.com/facebook/yoga/pull/658
Differential Revision: D6407996
Pulled By: emilsjolander
fbshipit-source-id: cc837409e1345624b4bd72c31e25fe68dcb0f6a3
Summary:
This fixes shrinking of elements which are in a non stretch alignment, but keeps the legacy stretch behaviour in place. Additionally this adds a testcase for ```useLegacyStretchBehaviour```
Fixes#633
Closes https://github.com/facebook/yoga/pull/635
Differential Revision: D6408037
Pulled By: emilsjolander
fbshipit-source-id: 377ab0308dd3a75a148a0af31ab5eb3ffb5b5d83
Summary:
If we have a values already set to undefined and set it to undefined again, we invalidate the layout. This change takes this case into account and keeps the layout valid.
Fixes#630
Closes https://github.com/facebook/yoga/pull/648
Differential Revision: D6408013
Pulled By: emilsjolander
fbshipit-source-id: dc2a848d84d3de9f4650fac9e41d7c8169446406