Summary: Removes code for now unused marker based approach

Reviewed By: davidaurelio

Differential Revision: D16048800

fbshipit-source-id: 228e0e906252782ee0bed543728b666d1f9cc854
This commit is contained in:
Sidharth Guglani 2019-07-17 08:08:01 -07:00 коммит произвёл Facebook Github Bot
Родитель fb855f60ba
Коммит a43615a38a
6 изменённых файлов: 21 добавлений и 169 удалений

Просмотреть файл

@ -5,7 +5,6 @@
* file in the root directory of this source tree.
*/
#pragma once
#include "YGMarker.h"
#include "Yoga-internal.h"
#include "Yoga.h"
@ -44,7 +43,6 @@ public:
std::array<bool, facebook::yoga::enums::count<YGExperimentalFeature>()>
experimentalFeatures = {};
void* context = nullptr;
YGMarkerCallbacks markerCallbacks = {nullptr, nullptr};
YGConfig(YGLogger logger);
void log(YGConfig*, YGNode*, YGLogLevel, void*, const char*, va_list);

Просмотреть файл

@ -1,14 +0,0 @@
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the LICENSE
* file in the root directory of this source tree.
*/
#include "YGMarker.h"
#include "YGConfig.h"
void YGConfigSetMarkerCallbacks(
YGConfigRef config,
YGMarkerCallbacks markerCallbacks) {
config->markerCallbacks = markerCallbacks;
}

Просмотреть файл

@ -1,74 +0,0 @@
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the LICENSE
* file in the root directory of this source tree.
*/
#pragma once
#include "YGMacros.h"
YG_EXTERN_C_BEGIN
typedef struct YGNode* YGNodeRef;
typedef struct YGConfig* YGConfigRef;
typedef YG_ENUM_BEGIN(YGMarker) {}
YG_ENUM_END(YGMarker);
typedef struct {
int layouts;
int measures;
int maxMeasureCache;
int cachedLayouts;
int cachedMeasures;
int measureCallbacks;
} YGMarkerLayoutData;
typedef struct {
bool _unused;
} YGMarkerNoData;
typedef union {
YGMarkerNoData* noData;
} YGMarkerData;
typedef struct {
// accepts marker type, a node ref, and marker data (depends on marker type)
// can return a handle or id that Yoga will pass to endMarker
void* (*startMarker)(YGMarker, YGNodeRef, YGMarkerData);
// accepts marker type, a node ref, marker data, and marker id as returned by
// startMarker
void (*endMarker)(YGMarker, YGNodeRef, YGMarkerData, void* id);
} YGMarkerCallbacks;
void YGConfigSetMarkerCallbacks(YGConfigRef, YGMarkerCallbacks);
YG_EXTERN_C_END
#ifdef __cplusplus
namespace facebook {
namespace yoga {
namespace marker {
namespace detail {
template <YGMarker M>
struct MarkerData;
struct NoMarkerData {
using type = YGMarkerNoData;
static type*& get(YGMarkerData& d) { return d.noData; }
};
} // namespace detail
template <YGMarker M>
typename detail::MarkerData<M>::type* data(YGMarkerData d) {
return detail::MarkerData<M>::get(d);
}
} // namespace marker
} // namespace yoga
} // namespace facebook
#endif // __cplusplus

Просмотреть файл

@ -15,7 +15,6 @@
#include "YGNodePrint.h"
#include "Yoga-internal.h"
#include "event/event.h"
#include "instrumentation.h"
#ifdef _MSC_VER
#include <float.h>
@ -941,7 +940,7 @@ bool YGLayoutNodeInternal(
const bool performLayout,
const char* reason,
const YGConfigRef config,
YGMarkerLayoutData& layoutMarkerData,
LayoutData& layoutMarkerData,
void* const layoutContext,
const uint32_t depth,
const uint32_t generationCount);
@ -1191,7 +1190,7 @@ static void YGNodeComputeFlexBasisForChild(
const YGMeasureMode heightMode,
const YGDirection direction,
const YGConfigRef config,
YGMarkerLayoutData& layoutMarkerData,
LayoutData& layoutMarkerData,
void* const layoutContext,
const uint32_t depth,
const uint32_t generationCount) {
@ -1387,7 +1386,7 @@ static void YGNodeAbsoluteLayoutChild(
const float height,
const YGDirection direction,
const YGConfigRef config,
YGMarkerLayoutData& layoutMarkerData,
LayoutData& layoutMarkerData,
void* const layoutContext,
const uint32_t depth,
const uint32_t generationCount) {
@ -1588,7 +1587,7 @@ static void YGNodeWithMeasureFuncSetMeasuredDimensions(
const YGMeasureMode heightMeasureMode,
const float ownerWidth,
const float ownerHeight,
YGMarkerLayoutData& layoutMarkerData,
LayoutData& layoutMarkerData,
void* const layoutContext) {
YGAssertWithNode(
node,
@ -1836,7 +1835,7 @@ static float YGNodeComputeFlexBasisForChildren(
YGFlexDirection mainAxis,
const YGConfigRef config,
bool performLayout,
YGMarkerLayoutData& layoutMarkerData,
LayoutData& layoutMarkerData,
void* const layoutContext,
const uint32_t depth,
const uint32_t generationCount) {
@ -2020,7 +2019,7 @@ static float YGDistributeFreeSpaceSecondPass(
const YGMeasureMode measureModeCrossDim,
const bool performLayout,
const YGConfigRef config,
YGMarkerLayoutData& layoutMarkerData,
LayoutData& layoutMarkerData,
void* const layoutContext,
const uint32_t depth,
const uint32_t generationCount) {
@ -2321,7 +2320,7 @@ static void YGResolveFlexibleLength(
const YGMeasureMode measureModeCrossDim,
const bool performLayout,
const YGConfigRef config,
YGMarkerLayoutData& layoutMarkerData,
LayoutData& layoutMarkerData,
void* const layoutContext,
const uint32_t depth,
const uint32_t generationCount) {
@ -2651,7 +2650,7 @@ static void YGNodelayoutImpl(
const float ownerHeight,
const bool performLayout,
const YGConfigRef config,
YGMarkerLayoutData& layoutMarkerData,
LayoutData& layoutMarkerData,
void* const layoutContext,
const uint32_t depth,
const uint32_t generationCount) {
@ -3707,7 +3706,7 @@ bool YGLayoutNodeInternal(
const bool performLayout,
const char* reason,
const YGConfigRef config,
YGMarkerLayoutData& layoutMarkerData,
LayoutData& layoutMarkerData,
void* const layoutContext,
uint32_t depth,
const uint32_t generationCount) {
@ -4065,7 +4064,7 @@ void YGNodeCalculateLayoutWithContext(
void* layoutContext) {
Event::publish<Event::LayoutPassStart>(node, {layoutContext});
YGMarkerLayoutData markerData = {};
LayoutData markerData = {};
// Increment the generation count. This will force the recursive routine to
// visit all dirty nodes at least once. Subsequent visits will be skipped if
@ -4161,7 +4160,7 @@ void YGNodeCalculateLayoutWithContext(
gCurrentGenerationCount++;
// Rerun the layout, and calculate the diff
unsetUseLegacyFlagRecursively(nodeWithoutLegacyFlag);
YGMarkerLayoutData layoutMarkerData = {};
LayoutData layoutMarkerData = {};
if (YGLayoutNodeInternal(
nodeWithoutLegacyFlag,
width,

Просмотреть файл

@ -9,7 +9,6 @@
#include <functional>
#include <vector>
#include <yoga/YGEnums.h>
#include <yoga/YGMarker.h>
struct YGConfig;
struct YGNode;
@ -24,6 +23,15 @@ enum LayoutType : int {
kCachedMeasure = 3
};
struct LayoutData {
int layouts;
int measures;
int maxMeasureCache;
int cachedLayouts;
int cachedMeasures;
int measureCallbacks;
};
struct Event {
enum Type {
NodeAllocation,
@ -94,7 +102,7 @@ struct Event::TypedData<Event::LayoutPassStart> {
template <>
struct Event::TypedData<Event::LayoutPassEnd> {
void* layoutContext;
YGMarkerLayoutData* layoutData;
LayoutData* layoutData;
};
template <>

Просмотреть файл

@ -1,65 +0,0 @@
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the LICENSE
* file in the root directory of this source tree.
*/
#include "YGConfig.h"
#include "YGMarker.h"
#include "YGNode.h"
namespace facebook {
namespace yoga {
namespace marker {
template <YGMarker MarkerType>
class MarkerSection {
private:
using Data = detail::MarkerData<MarkerType>;
public:
MarkerSection(YGNodeRef node) : MarkerSection{node, node->getConfig()} {}
void end() {
if (endMarker_) {
endMarker_(MarkerType, node_, markerData(&data), userData_);
endMarker_ = nullptr;
}
}
~MarkerSection() { end(); }
typename Data::type data = {};
template <typename Ret, typename... Args>
static Ret wrap(
YGNodeRef node,
Ret (YGNode::*method)(Args...),
Args... args) {
MarkerSection<MarkerType> section{node};
return (node->*method)(std::forward<Args>(args)...);
}
private:
decltype(YGMarkerCallbacks{}.endMarker) endMarker_;
YGNodeRef node_;
void* userData_;
MarkerSection(YGNodeRef node, YGConfigRef config)
: MarkerSection{node, config ? &config->markerCallbacks : nullptr} {}
MarkerSection(YGNodeRef node, YGMarkerCallbacks* callbacks)
: endMarker_{callbacks ? callbacks->endMarker : nullptr},
node_{node},
userData_{
callbacks && callbacks->startMarker
? callbacks->startMarker(MarkerType, node, markerData(&data))
: nullptr} {}
static YGMarkerData markerData(typename Data::type* d) {
YGMarkerData markerData = {};
Data::get(markerData) = d;
return markerData;
}
};
} // namespace marker
} // namespace yoga
} // namespace facebook