diff --git a/.rive_head b/.rive_head
index 1b876f8..6f48914 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-1c7e61b8a075b2eaacbcce4f5438d6072b30e420
+e96739328b7eb82870c5a642f6e3213c7b423d51
diff --git a/build/rive_build_config.lua b/build/rive_build_config.lua
index 49fa644..84993ee 100644
--- a/build/rive_build_config.lua
+++ b/build/rive_build_config.lua
@@ -130,10 +130,36 @@
     linkoptions({ '-flto=full' })
 end
 
-filter('system:windows')
+newoption({
+    trigger = 'use_default_runtime',
+    description = 'Don\'t set windows static runtime and runtime values.',
+})
+
+newoption({
+    trigger = 'runtime',
+    description = 'Choose whether to use staticruntime on/off/default',
+    allowed = {
+        { 'default', 'Use default runtime' },
+        { 'static', 'Use static runtime' },
+        { 'dynamic', 'Use dynamic runtime' },
+    },
+    default = 'static',
+})
+
+filter({ 'system:windows', 'options:runtime=static' })
 do
     staticruntime('on') -- Match Skia's /MT flag for link compatibility
     runtime('Release') -- Use /MT even in debug (/MTd is incompatible with Skia)
+end
+
+filter({ 'system:windows', 'options:runtime=dynamic' })
+do
+    staticruntime('off')
+    runtime('Release')
+end
+
+filter('system:windows')
+do
     architecture('x64')
     defines({ '_USE_MATH_DEFINES', 'NOMINMAX' })
 end
diff --git a/include/rive/artboard.hpp b/include/rive/artboard.hpp
index ba4ae11..69a339d 100644
--- a/include/rive/artboard.hpp
+++ b/include/rive/artboard.hpp
@@ -101,8 +101,8 @@
     void onDirty(ComponentDirt dirt) override;
 
     bool advance(double elapsedSeconds);
-    bool hasChangedDrawOrderInLastUpdate() { return m_HasChangedDrawOrderInLastUpdate; };
-    Drawable* firstDrawable() { return m_FirstDrawable; };
+    bool hasChangedDrawOrderInLastUpdate() { return m_HasChangedDrawOrderInLastUpdate; }
+    Drawable* firstDrawable() { return m_FirstDrawable; }
 
     enum class DrawOption
     {
diff --git a/src/animation/state_machine_instance.cpp b/src/animation/state_machine_instance.cpp
index 9434dd4..1719bbe 100644
--- a/src/animation/state_machine_instance.cpp
+++ b/src/animation/state_machine_instance.cpp
@@ -392,7 +392,7 @@
     HitComponent(Component* component, StateMachineInstance* stateMachineInstance) :
         m_component(component), m_stateMachineInstance(stateMachineInstance)
     {}
-    virtual ~HitComponent(){};
+    virtual ~HitComponent() {}
     virtual HitResult processEvent(Vec2D position, ListenerType hitType, bool canHit) = 0;
 
 protected:
@@ -409,7 +409,6 @@
     HitShape(Component* shape, StateMachineInstance* stateMachineInstance) :
         HitComponent(shape, stateMachineInstance)
     {}
-    ~HitShape() {}
     bool isHovered = false;
     float hitRadius = 2;
     std::vector<const StateMachineListener*> listeners;
@@ -459,7 +458,7 @@
     HitNestedArtboard(Component* nestedArtboard, StateMachineInstance* stateMachineInstance) :
         HitComponent(nestedArtboard, stateMachineInstance)
     {}
-    ~HitNestedArtboard() {}
+    ~HitNestedArtboard() override {}
     HitResult processEvent(Vec2D position, ListenerType hitType, bool canHit) override
     {
         auto nestedArtboard = m_component->as<NestedArtboard>();
