From 1a18122e3f76a90c4b131e4c6b2d779c02f1cf62 Mon Sep 17 00:00:00 2001 From: TGIshib <justzeddicus@gmail.com> Date: Sat, 27 Aug 2016 00:04:25 +0300 Subject: [PATCH] Last idl_gen_general.cpp update --- src/idl_gen_general.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/idl_gen_general.cpp b/src/idl_gen_general.cpp index d3b285d0..88ec0db2 100644 --- a/src/idl_gen_general.cpp +++ b/src/idl_gen_general.cpp @@ -1215,7 +1215,8 @@ void GenStruct(StructDef &struct_def, std::string *code_ptr) { code += "); }\n"; } } - if (struct_def.has_key) { + if (struct_def.has_key && (lang_.language == IDLOptions::kJava || + lang_.language == IDLOptions::kCSharp)) { if (lang_.language == IDLOptions::kJava) { code += "\n @Override\n protected int keysCompare("; code += "Integer o1, Integer o2, ByteBuffer _bb) {"; @@ -1240,12 +1241,14 @@ void GenStruct(StructDef &struct_def, std::string *code_ptr) { if (key_field->value.type.base_type == BASE_TYPE_STRING) { code += " byte[] byteKey = "; if (lang_.language == IDLOptions::kJava) - code += "key.getBytes(StandardCharsets.UTF_8);\n"; + code += "key.getBytes(java.nio.charset.StandardCharsets.UTF_8);\n"; else code += "System.Text.Encoding.UTF8.GetBytes(key);\n"; } code += " int vectorLocation = " + GenByteBufferLength("bb"); - code += " - vectorOffset.Value;\n int span = "; + code += " - vectorOffset"; + if (lang_.language == IDLOptions::kCSharp) code += ".Value"; + code += ";\n int span = "; code += "bb." + FunctionStart('G') + "etInt(vectorLocation), "; code += "middle, start = 0, comp, tableOffset; \n"; code += " vectorLocation += 4;\n"; -- GitLab