Open Clonkex opened 1 month ago
Compiling from source and running the same test under Ubuntu 22.04 LTS gives a segfault. I have no clue what I'm doing with gdb but this is what I get with a backtrace:
(gdb) backtrace
#0 0x00005555555ab30e in std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::size() const ()
#1 0x000055555570bc95 in flatbuffers::(anonymous namespace)::ImportDefinition flatbuffers::ts::TsGenerator::AddImport<flatbuffers::EnumDef>(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, flatbuffers::(anonymous namespace)::ImportDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, flatbuffers::(anonymous namespace)::ImportDefinition> > >&, flatbuffers::Definition const&, flatbuffers::EnumDef const&) ()
#2 0x00005555557142fd in flatbuffers::ts::TsGenerator::GenTypeName(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, flatbuffers::(anonymous namespace)::ImportDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, flatbuffers::(anonymous namespace)::ImportDefinition> > >&, flatbuffers::Definition const&, flatbuffers::Type const&, bool, bool) ()
#3 0x0000555555714a7b in flatbuffers::ts::TsGenerator::GenStructArgs(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, flatbuffers::(anonymous namespace)::ImportDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, flatbuffers::(anonymous namespace)::ImportDefinition> > >&, flatbuffers::StructDef const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#4 0x0000555555714a12 in flatbuffers::ts::TsGenerator::GenStructArgs(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, flatbuffers::(anonymous namespace)::ImportDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, flatbuffers::(anonymous namespace)::ImportDefinition> > >&, flatbuffers::StructDef const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#5 0x000055555572422e in flatbuffers::ts::TsGenerator::GenStruct(flatbuffers::Parser const&, flatbuffers::StructDef&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, flatbuffers::(anonymous namespace)::ImportDefinition, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, flatbuffers::(anonymous namespace)::ImportDefinition> > >&) ()
#6 0x0000555555710ba7 in flatbuffers::ts::TsGenerator::generateStructs() ()
#7 0x000055555570fff2 in flatbuffers::ts::TsGenerator::generate() ()
#8 0x000055555570ad70 in flatbuffers::GenerateTS(flatbuffers::Parser const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#9 0x000055555570b0dd in flatbuffers::(anonymous namespace)::TsCodeGenerator::GenerateCode(flatbuffers::Parser const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#10 0x00005555557d5c97 in flatbuffers::FlatCompiler::GenerateCode(flatbuffers::FlatCOptions const&, flatbuffers::Parser&) ()
#11 0x00005555557d6b2c in flatbuffers::FlatCompiler::Compile(flatbuffers::FlatCOptions const&) ()
#12 0x00005555557e9ead in main ()
I don't have time to investigate this myself but I hope it can be fixed quickly anyway 😊
Minimal replication schema:
When running
flatc.exe --ts test.fbs
, the command takes a little longer to run than normal and fails to complete. There are no outputs in the console, but the files are not completely generated, andecho %ERRORLEVEL%
returns-1073741819
. I'm not sure what I'm doing wrong. It seems to be related to the enum in the sub-struct.OS: Windows 11 Version 10.0.22621 Build 22621 flatc version: 24.3.25