From 4026117ba1109e22c9e046ea9f268621c350331c Mon Sep 17 00:00:00 2001 From: TGIshib Date: Fri, 26 Aug 2016 23:15:25 +0300 Subject: [PATCH] Correct idl_gen_general --- src/idl_gen_general.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/idl_gen_general.cpp b/src/idl_gen_general.cpp index 04deb9a0b..6984d8260 100644 --- a/src/idl_gen_general.cpp +++ b/src/idl_gen_general.cpp @@ -1237,11 +1237,13 @@ void GenStruct(StructDef &struct_def, std::string *code_ptr) { code += "ookupByKey(" + GenVectorOffsetType(); code += " vectorOffset, " + GenTypeGet(key_field->value.type); code += " key, ByteBuffer bb) {\n"; - code += " byte[] byteKey = "; - if (lang_.language == IDLOptions::kJava) - code += "key.getBytes(StandardCharsets.UTF_8);\n"; - else - code += "System.Text.Encoding.UTF8.GetBytes(key);\n"; + 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"; + else + code += "System.Text.Encoding.UTF8.GetBytes(key);\n"; + } code += " int vectorLocation = " + GenByteBufferLength("bb"); code += " - vectorOffset.Value;\n int span = "; code += "bb." + FunctionStart('G') + "etInt(vectorLocation), ";