mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-27 09:22:17 +00:00
[Dart]fix: segment fault with empty namespace when generating dart file (#5507)
* fix: segment fault with empty namespace when generating dart file * fix: compile err * fix: compile err * fix: imported file names * fix test issues * fix some language style issues
This commit is contained in:
committed by
Wouter van Oortmerssen
parent
c0282873fb
commit
3bfc86eaff
@@ -71,7 +71,9 @@ class DartGenerator : public BaseGenerator {
|
|||||||
"// ignore_for_file: unused_import, unused_field, "
|
"// ignore_for_file: unused_import, unused_field, "
|
||||||
"unused_local_variable\n\n";
|
"unused_local_variable\n\n";
|
||||||
|
|
||||||
code += "library " + kv->first + ";\n\n";
|
if (!kv->first.empty()) {
|
||||||
|
code += "library " + kv->first + ";\n\n";
|
||||||
|
}
|
||||||
|
|
||||||
code += "import 'dart:typed_data' show Uint8List;\n";
|
code += "import 'dart:typed_data' show Uint8List;\n";
|
||||||
code += "import 'package:flat_buffers/flat_buffers.dart' as " + _kFb +
|
code += "import 'package:flat_buffers/flat_buffers.dart' as " + _kFb +
|
||||||
@@ -85,7 +87,7 @@ class DartGenerator : public BaseGenerator {
|
|||||||
++kv2) {
|
++kv2) {
|
||||||
if (kv2->first != kv->first) {
|
if (kv2->first != kv->first) {
|
||||||
code += "import '" +
|
code += "import '" +
|
||||||
GeneratedFileName("./", file_name_ + "_" + kv2->first) +
|
GeneratedFileName("./", file_name_ + (!kv2->first.empty() ? "_" + kv2->first : "")) +
|
||||||
"' as " + ImportAliasName(kv2->first) + ";\n";
|
"' as " + ImportAliasName(kv2->first) + ";\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -93,7 +95,7 @@ class DartGenerator : public BaseGenerator {
|
|||||||
code += kv->second;
|
code += kv->second;
|
||||||
|
|
||||||
if (!SaveFile(
|
if (!SaveFile(
|
||||||
GeneratedFileName(path_, file_name_ + "_" + kv->first).c_str(),
|
GeneratedFileName(path_, file_name_ + (!kv->first.empty() ? "_" + kv->first : "")).c_str(),
|
||||||
code, false)) {
|
code, false)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -115,6 +117,9 @@ class DartGenerator : public BaseGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static std::string BuildNamespaceName(const Namespace &ns) {
|
static std::string BuildNamespaceName(const Namespace &ns) {
|
||||||
|
if (ns.components.empty()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
std::stringstream sstream;
|
std::stringstream sstream;
|
||||||
std::copy(ns.components.begin(), ns.components.end() - 1,
|
std::copy(ns.components.begin(), ns.components.end() - 1,
|
||||||
std::ostream_iterator<std::string>(sstream, "."));
|
std::ostream_iterator<std::string>(sstream, "."));
|
||||||
@@ -142,7 +147,7 @@ class DartGenerator : public BaseGenerator {
|
|||||||
auto noext = flatbuffers::StripExtension(it->second);
|
auto noext = flatbuffers::StripExtension(it->second);
|
||||||
auto basename = flatbuffers::StripPath(noext);
|
auto basename = flatbuffers::StripPath(noext);
|
||||||
|
|
||||||
*code += "import '" + GeneratedFileName("", basename + "_" + the_namespace) + "';\n";
|
*code += "import '" + GeneratedFileName("", basename + (the_namespace == "" ? "" : "_" + the_namespace)) + "';\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user