Skip to content

Commit 4b1f7da

Browse files
committed
fix compile error due to copying Function
1 parent 097e2c8 commit 4b1f7da

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

include/API.hpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ namespace devtools {
2727
template <typename T>
2828
concept UnderlyingIntegral = std::is_integral_v<T> || std::is_integral_v<std::underlying_type_t<T>>;
2929

30-
struct RegisterNodeEvent final : geode::Event<RegisterNodeEvent, bool(geode::Function<void(cocos2d::CCNode*)>)> {
30+
struct RegisterNodeEvent final : geode::Event<RegisterNodeEvent, bool(geode::Function<void(cocos2d::CCNode*)>&)> {
3131
using Event::Event;
3232
};
3333

@@ -76,11 +76,13 @@ namespace devtools {
7676
/// @see `devtools::property`, `devtools::label`, `devtools::enumerable`, `devtools::button`
7777
template <typename T, std::invocable<std::remove_pointer_t<T>*> F> requires IsCCNode<T>
7878
void registerNode(F&& callback) {
79-
RegisterNodeEvent().send([callback = std::forward<F>(callback)](cocos2d::CCNode* node) {
79+
geode::Function<void(cocos2d::CCNode*)> func = [callback = std::forward<F>(callback)](cocos2d::CCNode* node) {
8080
if (auto casted = geode::cast::typeinfo_cast<std::remove_pointer_t<T>*>(node)) {
8181
callback(casted);
8282
}
83-
});
83+
};
84+
85+
RegisterNodeEvent().send(func);
8486
}
8587

8688
/// @brief Renders a property editor for the given value in the DevTools UI.

src/API.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ bool devtools::button(ZStringView label) {
9090
}
9191

9292
$execute {
93-
devtools::RegisterNodeEvent().listen([](Function<void(CCNode*)> callback) {
93+
devtools::RegisterNodeEvent().listen([](Function<void(CCNode*)>& callback) {
9494
DevTools::get()->addCustomCallback(std::move(callback));
9595
return ListenerResult::Stop;
9696
}).leak();

src/DevTools.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ void DevTools::setDraggedNode(CCNode* node) {
112112
}
113113

114114
void DevTools::addCustomCallback(Function<void(CCNode*)>&& callback) {
115-
m_customCallbacks.push_back(std::forward<Function<void(CCNode*)>>(callback));
115+
m_customCallbacks.push_back(std::move(callback));
116116
}
117117

118118
DragButton* DevTools::getDragButton() {

0 commit comments

Comments
 (0)