java - Lua 堆栈溢出

标签 java lua

我正在开发一个使用 Kahlua 进行嵌入式 Lua 脚本编写的 Java 应用程序。在调用大量函数后,它总是因堆栈溢出而崩溃...我需要做些什么来从堆栈中删除未使用的调用帧吗?

最佳答案

在标准 Lua 中,您可以使用 lua_pop 函数从 Lua 堆栈中删除项目。参见 this answer有关此用法的提示。

如果您重复调用您的代码,最简单的做法是在处理之前存储堆栈的高度并在之后恢复它:

int top = lua_gettop(L);
... /* some processing involving the stack*/
lua_settop(L, top);

现在,我不确定如何在 Kahlua 中实现这一目标。但是在源代码中我看到了 LuaCallFrame.getTop()LuaCallFrame.setTop() 所以代码应该是相似的。

关于java - Lua 堆栈溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4652522/

相关文章:

java - java vector 方法set()和setElementAt()有什么区别?

java - 如何在 JNA 中解析 DWORD

java - JUnit 测试 - 错误的参数数量和@Parameter 字段

java - 如何使用 tomcat 在 Windows IIS 中托管 spring 项目?

string - Lua中将数组中的字符串串联成长字符串

java - 额外存储归并排序

lua - 如何从Lua中的字符串中删除最后一行?

c - LUA 在没有的地方显示错误

lua - Lua 编译器是否优化本地变量?

file-io - 文件读取未完成