From 0acb6201594739d069d8973ee8391dea9bfaf9c7 Mon Sep 17 00:00:00 2001 From: Emil Sjolander Date: Mon, 9 Jan 2017 08:34:56 -0800 Subject: [PATCH] Use int instead of NSInteger for ABI compatibility Summary: @public Cannot use NSInteger as NSInteger has a different size than int (which is the default type of a enum). Therefor when linking the Yoga C library into obj-c the header is a missmatch for the Yoga ABI. Reviewed By: cwdick Differential Revision: D4392272 fbshipit-source-id: 22b92ac8f3eb7114e81dbd9b0bec9044c3d43da5 --- yoga/YGMacros.h | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/yoga/YGMacros.h b/yoga/YGMacros.h index d6724272..39e21b78 100644 --- a/yoga/YGMacros.h +++ b/yoga/YGMacros.h @@ -41,18 +41,12 @@ } #endif -#ifndef YG_ENUM_BEGIN -#ifndef NS_ENUM -#define YG_ENUM_BEGIN(name) enum name -#else -#define YG_ENUM_BEGIN(name) NS_ENUM(NSInteger, name) -#endif -#endif - -#ifndef YG_ENUM_END -#ifndef NS_ENUM -#define YG_ENUM_END(name) name -#else +#ifdef NS_ENUM +// Cannot use NSInteger as NSInteger has a different size than int (which is the default type of a enum). +// Therefor when linking the Yoga C library into obj-c the header is a missmatch for the Yoga ABI. +#define YG_ENUM_BEGIN(name) NS_ENUM(int, name) #define YG_ENUM_END(name) -#endif +#else +#define YG_ENUM_BEGIN(name) enum name +#define YG_ENUM_END(name) name #endif