Browse Source

Allow Ref `instantiate` to accept constructor args

Thaddeus Crews 1 year ago
parent
commit
b3cac9c092
2 changed files with 4 additions and 3 deletions
  1. 1 1
      core/debugger/remote_debugger.cpp
  2. 3 2
      core/object/ref_counted.h

+ 1 - 1
core/debugger/remote_debugger.cpp

@@ -665,7 +665,7 @@ RemoteDebugger::RemoteDebugger(Ref<RemoteDebuggerPeer> p_peer) {
 	// Performance Profiler
 	// Performance Profiler
 	Object *perf = Engine::get_singleton()->get_singleton_object("Performance");
 	Object *perf = Engine::get_singleton()->get_singleton_object("Performance");
 	if (perf) {
 	if (perf) {
-		performance_profiler = Ref<PerformanceProfiler>(memnew(PerformanceProfiler(perf)));
+		performance_profiler.instantiate(perf);
 		performance_profiler->bind("performance");
 		performance_profiler->bind("performance");
 		profiler_enable("performance", true);
 		profiler_enable("performance", true);
 	}
 	}

+ 3 - 2
core/object/ref_counted.h

@@ -212,8 +212,9 @@ public:
 		reference = nullptr;
 		reference = nullptr;
 	}
 	}
 
 
-	void instantiate() {
-		ref(memnew(T));
+	template <typename... VarArgs>
+	void instantiate(VarArgs... p_params) {
+		ref(memnew(T(p_params...)));
 	}
 	}
 
 
 	Ref() {}
 	Ref() {}