Remove CSSAssertSetFailFunc

Summary: Remove CSSAssertSetFailFunc and use CSSLogLevelError for throwing managed exception.

Reviewed By: emilsjolander

Differential Revision: D4155452

fbshipit-source-id: 5a19c79a212f204d13064527fd6e5843bab76e6b
This commit is contained in:
Kazuki Sakamoto
2016-11-09 17:26:48 -08:00
committed by Facebook Github Bot
parent 8a7183f465
commit c382d513fb
8 changed files with 10 additions and 75 deletions

View File

@@ -2497,17 +2497,3 @@ void CSSLog(CSSLogLevel level, const char *format, ...) {
gLogger(level, format, args);
va_end(args);
}
#ifdef CSS_ASSERT_FAIL_ENABLED
static CSSAssertFailFunc gAssertFailFunc;
void CSSAssertSetFailFunc(CSSAssertFailFunc func) {
gAssertFailFunc = func;
}
void CSSAssertFail(const char *message) {
if (gAssertFailFunc) {
(*gAssertFailFunc)(message);
}
}
#endif

View File

@@ -132,10 +132,6 @@ typedef CSSSize (*CSSMeasureFunc)(CSSNodeRef node,
typedef void (*CSSPrintFunc)(CSSNodeRef node);
typedef int (*CSSLogger)(CSSLogLevel level, const char *format, va_list args);
#ifdef CSS_ASSERT_FAIL_ENABLED
typedef void (*CSSAssertFailFunc)(const char *message);
#endif
// CSSNode
WIN_EXPORT CSSNodeRef CSSNodeNew(void);
WIN_EXPORT void CSSNodeInit(const CSSNodeRef node);
@@ -242,10 +238,4 @@ CSS_NODE_LAYOUT_PROPERTY(CSSDirection, Direction);
WIN_EXPORT void CSSLayoutSetLogger(CSSLogger logger);
WIN_EXPORT void CSSLog(CSSLogLevel level, const char *message, ...);
#ifdef CSS_ASSERT_FAIL_ENABLED
// Assert
WIN_EXPORT void CSSAssertSetFailFunc(CSSAssertFailFunc func);
WIN_EXPORT void CSSAssertFail(const char *message);
#endif
CSS_EXTERN_C_END

View File

@@ -33,16 +33,10 @@
#define CSS_ABORT()
#endif
#if CSS_ASSERT_FAIL_ENABLED
#define CSS_ERROR_FUNC(message) CSSAssertFail(message)
#else
#define CSS_ERROR_FUNC(message) CSSLog(CSSLogLevelError, "%s", message)
#endif
#ifndef CSS_ASSERT
#define CSS_ASSERT(X, message) \
if (!(X)) { \
CSS_ERROR_FUNC(message); \
CSS_ABORT(); \
#define CSS_ASSERT(X, message) \
if (!(X)) { \
CSSLog(CSSLogLevelError, "%s", message); \
CSS_ABORT(); \
}
#endif

View File

@@ -1,35 +0,0 @@
/**
* Copyright (c) 2014-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
using System;
using System.Runtime.InteropServices;
namespace Facebook.CSSLayout
{
internal static class CSSAssert
{
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void FailFunc(string message);
private static bool _assertInitialized;
private static FailFunc _failFunc;
public static void Initialize()
{
if (!_assertInitialized)
{
_failFunc = (message) => {
throw new InvalidOperationException(message);
};
Native.CSSAssertSetFailFunc(_failFunc);
_assertInitialized = true;
}
}
}
}

View File

@@ -31,6 +31,11 @@ namespace Facebook.CSSLayout
{
Logger(level, message);
}
if (level == CSSLogLevel.Error)
{
throw new InvalidOperationException(message);
}
};
Native.CSSInteropSetLogger(_managedLogger);
_initialized = true;

View File

@@ -26,7 +26,6 @@ namespace Facebook.CSSLayout
public CSSNode()
{
CSSAssert.Initialize();
CSSLogger.Initialize();
_cssNode = Native.CSSNodeNew();

View File

@@ -24,10 +24,6 @@ namespace Facebook.CSSLayout
public static extern void CSSInteropSetLogger(
[MarshalAs(UnmanagedType.FunctionPtr)] CSSLogger.Func func);
[DllImport(DllName)]
public static extern void CSSAssertSetFailFunc(
[MarshalAs(UnmanagedType.FunctionPtr)] CSSAssert.FailFunc func);
[DllImport(DllName)]
public static extern IntPtr CSSNodeNew();

View File

@@ -27,6 +27,6 @@ if [ -d $NUNIT \
fi
cd "$( dirname "$0" )"
clang -g -DCSS_ASSERT_FAIL_ENABLED -Wall -Wextra -dynamiclib -o libCSSLayout.dylib -I../../.. ../../../CSSLayout/*.c ../../CSSLayout/CSSInterop.cpp
clang -g -Wall -Wextra -dynamiclib -o libCSSLayout.dylib -I../../.. ../../../CSSLayout/*.c ../../CSSLayout/CSSInterop.cpp
mcs -debug -t:library -r:$NUNIT/nunit.framework.dll -out:CSSLayoutTest.dll *.cs ../../../csharp/Facebook.CSSLayout/*cs
MONO_PATH=$NUNIT mono64 --debug $NUNIT/nunit-console.exe CSSLayoutTest.dll