Skip to content

Commit

Permalink
Re-add support for using Yoga without exceptions (#1006)
Browse files Browse the repository at this point in the history
Summary:
This is a partial rollback of 07c0d53.

Pull Request resolved: #1006

Reviewed By: yungsters

Differential Revision: D40032544

Pulled By: yungsters

fbshipit-source-id: 9ef9b80672eced86a98cfae66c81710bd3ee6f9b
  • Loading branch information
Yannic authored and facebook-github-bot committed Oct 4, 2022
1 parent ec0a829 commit e1b401c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tests/YGMeasureTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,11 @@ TEST(YogaDeathTest, cannot_add_child_to_node_with_measure_func) {
root->setMeasureFunc(_measure);

const YGNodeRef root_child0 = YGNodeNew();
#if defined(__cpp_exceptions)
ASSERT_THROW(YGNodeInsertChild(root, root_child0, 0), std::logic_error);
#else // !defined(__cpp_exceptions)
ASSERT_DEATH(YGNodeInsertChild(root, root_child0, 0), "Cannot add child.*");
#endif // defined(__cpp_exceptions)
YGNodeFree(root_child0);
YGNodeFreeRecursive(root);
}
Expand All @@ -589,7 +593,11 @@ TEST(YogaDeathTest, cannot_add_nonnull_measure_func_to_non_leaf_node) {
const YGNodeRef root = YGNodeNew();
const YGNodeRef root_child0 = YGNodeNew();
YGNodeInsertChild(root, root_child0, 0);
#if defined(__cpp_exceptions)
ASSERT_THROW(root->setMeasureFunc(_measure), std::logic_error);
#else // !defined(__cpp_exceptions)
ASSERT_DEATH(root->setMeasureFunc(_measure), "Cannot set measure function.*");
#endif // defined(__cpp_exceptions)
YGNodeFreeRecursive(root);
}

Expand Down
4 changes: 4 additions & 0 deletions yoga/Utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,5 +75,9 @@ YGFloatOptional YGFloatOptionalMax(YGFloatOptional op1, YGFloatOptional op2) {
}

void throwLogicalErrorWithMessage(const char* message) {
#if defined(__cpp_exceptions)
throw std::logic_error(message);
#else // !defined(__cpp_exceptions)
std::terminate();
#endif // defined(__cpp_exceptions)
}

0 comments on commit e1b401c

Please sign in to comment.