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 5a5b59e..eb553ad 100644
--- a/compiler/cpp/src/generate/t_js_generator.cc
+++ b/compiler/cpp/src/generate/t_js_generator.cc
@@ -1367,12 +1367,14 @@
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 60d70bf..3a82a83 100644
--- a/test/nodejs/client.js
+++ b/test/nodejs/client.js
@@ -114,8 +114,6 @@
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 @@
console.log("testMap(", mapout, ") = \n", response);
passed();
});
-*/
/*
* TODO: testSet, testList, testEnum, testTypedef, testMapMap, testInsanity