tammela added a comment. Trying to run the tests in my system failed with the following:
================ Comment at: lldb/CMakeLists.txt:60-68 + execute_process( + COMMAND ${Lua_EXECUTABLE} + -e "for w in string.gmatch(package.cpath, ';?([^;]+);?') do \ + if string.match(w, '%?%.so') then print(string.sub(w, 1, #w - 4)) break end end" + OUTPUT_VARIABLE LLDB_LUA_DEFAULT_INSTALL_PATH + OUTPUT_STRIP_TRAILING_WHITESPACE) + file(TO_CMAKE_PATH ${LLDB_LUA_DEFAULT_INSTALL_PATH} LLDB_LUA_DEFAULT_INSTALL_PATH) ---------------- This is broken if the user specifies another INSTALL_PREFIX, as it forces it to `/usr/local/lib/lua/5.3`. I think a safe option is to always set to `lib/lua/5.3`, so install prefixes can be concatenated freely. ================ Comment at: lldb/CMakeLists.txt:116 +if (LLDB_ENABLE_LUA) + set(lldb_lua_target_dir "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_INSTALL_LIBDIR}/lua") + get_target_property(lldb_lua_bindings_dir swig_wrapper_lua BINARY_DIR) ---------------- I think we are missing the Framework build here. LLDB_BUILD_FRAMEWORK is a Darwin specific variable, so you will most likely need one to test this. I can help if you don't have access to a Darwin device. ================ Comment at: lldb/bindings/lua/lua-typemaps.swig:195-213 +%typemap(in) char ** { + if (lua_istable(L, $input)) { + size_t size = lua_rawlen(L, $input); + $1 = (char **)malloc((size + 1) * sizeof(char *)); + int i = 0, j = 0; + while (i++ < size) { + lua_rawgeti(L, $input, i); ---------------- Add comment here saying that the raw calls will restrict the table to be a sequence of strings. Please add it in other functions as well. ================ Comment at: lldb/bindings/lua/lua-typemaps.swig:219-221 +%typecheck(SWIG_TYPECHECK_STRING_ARRAY) char ** { + $1 = (lua_istable(L, $input) || lua_isnil(L, $input)); +} ---------------- This is not being generated by SWIG for some reason. I think it's more readable to just have an else clause that raises an error on line 212. ================ Comment at: lldb/bindings/lua/lua-typemaps.swig:275 + $2 = 0; + } +} ---------------- Else clause here for raising an error for types that are not supported ================ Comment at: lldb/bindings/lua/lua-typemaps.swig:278 + +%typemap(in) (uint64_t* array, size_t array_len), + (uint32_t* array, size_t array_len), ---------------- This bug was not caught by the tests, perhaps we need to expand it more? This would certainly generate a NULL pointer de-reference as the argument would always be NULL, since it's replacing the above code with just `free()`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D108090/new/ https://reviews.llvm.org/D108090 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits