From dd6d297c555c6f4890247be0ef3034d21412abfe Mon Sep 17 00:00:00 2001 From: Kazuki Sakamoto Date: Fri, 7 Oct 2016 11:07:50 -0700 Subject: [PATCH] Introduce CSSNodeGetInstanceCount API Reviewed By: emilsjolander Differential Revision: D3981990 fbshipit-source-id: 98005ae1fc21d4c8802f24030fff9ffb00bd292d --- React/CSSLayout/CSSLayout.c | 8 ++++++++ React/CSSLayout/CSSLayout.h | 1 + 2 files changed, 9 insertions(+) diff --git a/React/CSSLayout/CSSLayout.c b/React/CSSLayout/CSSLayout.c index 967647b22f..ba1b10c6cb 100644 --- a/React/CSSLayout/CSSLayout.c +++ b/React/CSSLayout/CSSLayout.c @@ -129,9 +129,12 @@ computedEdgeValue(const float edges[CSSEdgeCount], const CSSEdge edge, const flo return defaultValue; } +static int32_t gNodeInstanceCount = 0; + CSSNodeRef CSSNodeNew() { const CSSNodeRef node = calloc(1, sizeof(CSSNode)); CSS_ASSERT(node, "Could not allocate memory for node"); + gNodeInstanceCount++; CSSNodeInit(node); return node; @@ -140,6 +143,7 @@ CSSNodeRef CSSNodeNew() { void CSSNodeFree(const CSSNodeRef node) { CSSNodeListFree(node->children); free(node); + gNodeInstanceCount--; } void CSSNodeFreeRecursive(const CSSNodeRef root) { @@ -151,6 +155,10 @@ void CSSNodeFreeRecursive(const CSSNodeRef root) { CSSNodeFree(root); } +int32_t CSSNodeGetInstanceCount() { + return gNodeInstanceCount; +} + void CSSNodeInit(const CSSNodeRef node) { node->parent = NULL; node->children = CSSNodeListNew(4); diff --git a/React/CSSLayout/CSSLayout.h b/React/CSSLayout/CSSLayout.h index fd18f2769d..ea532bbb15 100644 --- a/React/CSSLayout/CSSLayout.h +++ b/React/CSSLayout/CSSLayout.h @@ -127,6 +127,7 @@ WIN_EXPORT CSSNodeRef CSSNodeNew(); WIN_EXPORT void CSSNodeInit(const CSSNodeRef node); WIN_EXPORT void CSSNodeFree(const CSSNodeRef node); WIN_EXPORT void CSSNodeFreeRecursive(const CSSNodeRef node); +WIN_EXPORT int32_t CSSNodeGetInstanceCount(); WIN_EXPORT void CSSNodeInsertChild(const CSSNodeRef node, const CSSNodeRef child, const uint32_t index); WIN_EXPORT void CSSNodeRemoveChild(const CSSNodeRef node, const CSSNodeRef child);