diff --git a/cameraserver/src/main/native/cpp/cameraserver/CameraServer.cpp b/cameraserver/src/main/native/cpp/cameraserver/CameraServer.cpp index 2302b1abaf..f7647de362 100644 --- a/cameraserver/src/main/native/cpp/cameraserver/CameraServer.cpp +++ b/cameraserver/src/main/native/cpp/cameraserver/CameraServer.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -47,8 +48,14 @@ struct CameraServer::Impl { }; CameraServer* CameraServer::GetInstance() { - static CameraServer instance; - return &instance; + struct Creator { + static void* call() { return new CameraServer{}; } + }; + struct Deleter { + static void call(void* ptr) { delete static_cast(ptr); } + }; + static wpi::ManagedStatic instance; + return &(*instance); } static wpi::StringRef MakeSourceValue(CS_Source source,