Fix Lua stack imbalance when registering module (#11683) a03a19071f

Co-authored-by: Philip Chung <philterdesign@gmail.com>
diff --git a/.rive_head b/.rive_head
index 0e900b2..fe93c07 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-3fb7ee93b669bbd97b22ff4bb690c22ebd1797be
+a03a19071f550263c1bed327923a1e0d32975618
diff --git a/src/lua/rive_lua_libs.cpp b/src/lua/rive_lua_libs.cpp
index 91ed78d..fa40897 100644
--- a/src/lua/rive_lua_libs.cpp
+++ b/src/lua/rive_lua_libs.cpp
@@ -596,12 +596,18 @@
     // required dependencies
     for (ModuleDetails* moduleDetails : m_modulesToRegister)
     {
-        // Skip if already registered
-        if (checkRegisteredModules(state,
-                                   moduleDetails->moduleName().c_str()) == 1)
+        if (moduleDetails == nullptr)
         {
             continue;
         }
+        std::string moduleName = moduleDetails->moduleName();
+
+        // Skip if already registered
+        if (checkRegisteredModules(state, moduleName.c_str()) == 1)
+        {
+            lua_pop(state, 1);
+            continue;
+        }
         tryRegisterModule(state, moduleDetails);
     }
 
@@ -734,7 +740,7 @@
                                  const char* name,
                                  Span<uint8_t> bytecode)
 {
-    // Check if already registered
+    // Check if already registered - leave module on stack for caller to use
     if (checkRegisteredModules(state, name) == 1)
     {
         return true;
@@ -760,6 +766,7 @@
     // Check if already registered
     if (checkRegisteredModules(state, name) == 1)
     {
+        lua_pop(state, 1);
         return true;
     }