Revert D15602627: [yoga] moved PtrJNode map to YGJtypes.h and passing layout context as data in LayoutPassEnd Event

Differential Revision:
D15602627

Original commit changeset: bb5bd5bbf8dc

fbshipit-source-id: 5ae08826eb706c3794c36738cb9625f82b58641e
This commit is contained in:
Joshua Gross
2019-06-03 19:53:49 -07:00
committed by Facebook Github Bot
parent 586eb6102a
commit 4a4325afb6
4 changed files with 29 additions and 39 deletions

View File

@@ -75,6 +75,34 @@ const short int LAYOUT_BORDER_START_INDEX = 14;
bool useBatchingForLayoutOutputs; bool useBatchingForLayoutOutputs;
class PtrJNodeMap {
using JNodeArray = JArrayClass<JYogaNode::javaobject>;
std::map<YGNodeRef, size_t> ptrsToIdxs_;
alias_ref<JNodeArray> javaNodes_;
public:
PtrJNodeMap() : ptrsToIdxs_{}, javaNodes_{} {}
PtrJNodeMap(
alias_ref<JArrayLong> nativePointers,
alias_ref<JNodeArray> javaNodes)
: javaNodes_{javaNodes} {
auto pin = nativePointers->pinCritical();
auto ptrs = pin.get();
for (size_t i = 0, n = pin.size(); i < n; ++i) {
ptrsToIdxs_[(YGNodeRef) ptrs[i]] = i;
}
}
local_ref<JYogaNode> ref(YGNodeRef node) {
auto idx = ptrsToIdxs_.find(node);
if (idx == ptrsToIdxs_.end()) {
return local_ref<JYogaNode>{};
} else {
return javaNodes_->getElement(idx->second);
}
}
};
namespace { namespace {
union YGNodeContext { union YGNodeContext {

View File

@@ -6,11 +6,6 @@
*/ */
#include <fb/fbjni.h> #include <fb/fbjni.h>
#include <yoga/YGValue.h> #include <yoga/YGValue.h>
#include <yoga/Yoga.h>
#include <map>
using namespace facebook::jni;
using namespace std;
struct JYogaNode : public facebook::jni::JavaClass<JYogaNode> { struct JYogaNode : public facebook::jni::JavaClass<JYogaNode> {
static constexpr auto kJavaDescriptor = "Lcom/facebook/yoga/YogaNodeJNIBase;"; static constexpr auto kJavaDescriptor = "Lcom/facebook/yoga/YogaNodeJNIBase;";
@@ -33,31 +28,3 @@ struct JYogaLogger : public facebook::jni::JavaClass<JYogaLogger> {
facebook::jni::alias_ref<JYogaLogLevel>, facebook::jni::alias_ref<JYogaLogLevel>,
jstring); jstring);
}; };
class PtrJNodeMap {
using JNodeArray = JArrayClass<JYogaNode::javaobject>;
std::map<YGNodeRef, size_t> ptrsToIdxs_;
alias_ref<JNodeArray> javaNodes_;
public:
PtrJNodeMap() : ptrsToIdxs_{}, javaNodes_{} {}
PtrJNodeMap(
alias_ref<JArrayLong> nativePointers,
alias_ref<JNodeArray> javaNodes)
: javaNodes_{javaNodes} {
auto pin = nativePointers->pinCritical();
auto ptrs = pin.get();
for (size_t i = 0, n = pin.size(); i < n; ++i) {
ptrsToIdxs_[(YGNodeRef) ptrs[i]] = i;
}
}
local_ref<JYogaNode> ref(YGNodeRef node) {
auto idx = ptrsToIdxs_.find(node);
if (idx == ptrsToIdxs_.end()) {
return local_ref<JYogaNode>{};
} else {
return javaNodes_->getElement(idx->second);
}
}
};

View File

@@ -4093,7 +4093,7 @@ void YGNodeCalculateLayoutWithContext(
marker = nullptr; marker = nullptr;
#ifdef YG_ENABLE_EVENTS #ifdef YG_ENABLE_EVENTS
Event::publish<Event::LayoutPassEnd>(node, {layoutContext}); Event::publish<Event::LayoutPassEnd>(node);
#endif #endif
// We want to get rid off `useLegacyStretchBehaviour` from YGConfig. But we // We want to get rid off `useLegacyStretchBehaviour` from YGConfig. But we

View File

@@ -71,10 +71,5 @@ struct Event::TypedData<Event::NodeDeallocation> {
YGConfig* config; YGConfig* config;
}; };
template <>
struct Event::TypedData<Event::LayoutPassEnd> {
void* layoutContext;
};
} // namespace yoga } // namespace yoga
} // namespace facebook } // namespace facebook