From 18353a4ee582aedd20c8906ac84ee6ba228d530a Mon Sep 17 00:00:00 2001 From: Robert Schmidtke Date: Mon, 2 Oct 2017 10:45:38 +0200 Subject: [PATCH] resolve TODO for slicing in CSharp code generation --- 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 ba8c78f7d..2359bc8f5 100644 --- a/src/idl_gen_general.cpp +++ b/src/idl_gen_general.cpp @@ -839,11 +839,14 @@ void GenStruct(StructDef &struct_def, std::string *code_ptr) { code += ps_method_signature + "(ByteBuffer _psbb) "; code += "{ return " + ps_method_name + "(_psbb, new " + struct_def.name+ "()); }\n"; - // TODO this part needs a C# equivalent // use a slice that skips the size, then proceed as normal code += ps_method_signature + "(ByteBuffer _psbb, " + struct_def.name + " obj) { "; - code += "ByteBuffer _bb = _psbb.slice(); "; - code += "_bb.position(4); "; + code += "ByteBuffer _bb = _psbb." + FunctionStart('S') + "lice(); "; + if (lang_.language == IDLOptions::kCSharp) { + code += "_bb.Position = 4; "; + } else { + code += "_bb.position(4); "; + } code += "return " + method_name + "(_bb, obj); }\n"; // method that returns the size for a size prefixed buffer