From: Roger Meier Date: Sun, 8 Apr 2012 12:30:00 +0000 (+0000) Subject: THRIFT-1553 thrift nodejs service side can't read map structure, key as enum, value... X-Git-Tag: 0.9.1~420 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=5c80802332cca08b0fa4def67610100faf6ef84e;p=common%2Fthrift.git THRIFT-1553 thrift nodejs service side can't read map structure, key as enum, value as Object Patch: Henrique Mendonca git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1310986 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/compiler/cpp/src/generate/t_js_generator.cc b/compiler/cpp/src/generate/t_js_generator.cc index 5a5b59e8..eb553ad1 100644 --- a/compiler/cpp/src/generate/t_js_generator.cc +++ b/compiler/cpp/src/generate/t_js_generator.cc @@ -1367,12 +1367,14 @@ void t_js_generator::generate_deserialize_container(ofstream &out, scope_up(out); if (ttype->is_map()) { - out << - indent() << "if (" << i << " > 0 ) {" << endl << - indent() << " if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) {" << endl << - indent() << " input.rstack.pop();" << endl << - indent() << " }" << endl << - indent() << "}" << endl; + if (!gen_node_) { + out << + indent() << "if (" << i << " > 0 ) {" << endl << + indent() << " if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) {" << endl << + indent() << " input.rstack.pop();" << endl << + indent() << " }" << endl << + indent() << "}" << endl; + } generate_deserialize_map_element(out, (t_map*)ttype, prefix); } else if (ttype->is_set()) { diff --git a/test/nodejs/client.js b/test/nodejs/client.js index 60d70bf7..3a82a839 100644 --- a/test/nodejs/client.js +++ b/test/nodejs/client.js @@ -114,8 +114,6 @@ client.testNest(out2, function(err, response) { passed(); }); -/* - * TypeError: Cannot read property 'length' of undefined var mapout = {}; for (var i = 0; i < 5; ++i) { mapout[i] = i-10; @@ -125,7 +123,6 @@ client.testMap(mapout, function(err, response) { console.log("testMap(", mapout, ") = \n", response); passed(); }); -*/ /* * TODO: testSet, testList, testEnum, testTypedef, testMapMap, testInsanity