summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-02-12 13:34:59 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-02-12 13:34:59 +0100
commit75a8c8a708208f40be16dc73b926bd16d68b6ab7 (patch)
tree636e9f34bc0f5291832805f25cffc5c3f3ee6394 /core
parentb30373e32b9f358f2d1fa3b67ffc35b4e8d85982 (diff)
parentb3cac9c0923f0afb520a35c0e792a6a73868fa84 (diff)
downloadredot-engine-75a8c8a708208f40be16dc73b926bd16d68b6ab7.tar.gz
Merge pull request #88183 from Repiteo/ref-instantiate-params
Allow Ref `instantiate` to accept constructor args
Diffstat (limited to 'core')
-rw-r--r--core/debugger/remote_debugger.cpp2
-rw-r--r--core/object/ref_counted.h5
2 files changed, 4 insertions, 3 deletions
diff --git a/core/debugger/remote_debugger.cpp b/core/debugger/remote_debugger.cpp
index fe9e468774..6f2036705d 100644
--- a/core/debugger/remote_debugger.cpp
+++ b/core/debugger/remote_debugger.cpp
@@ -665,7 +665,7 @@ RemoteDebugger::RemoteDebugger(Ref<RemoteDebuggerPeer> p_peer) {
// Performance Profiler
Object *perf = Engine::get_singleton()->get_singleton_object("Performance");
if (perf) {
- performance_profiler = Ref<PerformanceProfiler>(memnew(PerformanceProfiler(perf)));
+ performance_profiler.instantiate(perf);
performance_profiler->bind("performance");
profiler_enable("performance", true);
}
diff --git a/core/object/ref_counted.h b/core/object/ref_counted.h
index 228373d662..10be27b879 100644
--- a/core/object/ref_counted.h
+++ b/core/object/ref_counted.h
@@ -212,8 +212,9 @@ public:
reference = nullptr;
}
- void instantiate() {
- ref(memnew(T));
+ template <typename... VarArgs>
+ void instantiate(VarArgs... p_params) {
+ ref(memnew(T(p_params...)));
}
Ref() {}