You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by ro...@apache.org on 2012/04/08 14:30:01 UTC

svn commit: r1310986 - in /thrift/trunk: compiler/cpp/src/generate/t_js_generator.cc test/nodejs/client.js

Author: roger
Date: Sun Apr  8 12:30:00 2012
New Revision: 1310986

URL: http://svn.apache.org/viewvc?rev=1310986&view=rev
Log:
THRIFT-1553 thrift nodejs service side can't read map structure, key as enum, value as Object
Patch: Henrique Mendonca

Modified:
    thrift/trunk/compiler/cpp/src/generate/t_js_generator.cc
    thrift/trunk/test/nodejs/client.js

Modified: thrift/trunk/compiler/cpp/src/generate/t_js_generator.cc
URL: http://svn.apache.org/viewvc/thrift/trunk/compiler/cpp/src/generate/t_js_generator.cc?rev=1310986&r1=1310985&r2=1310986&view=diff
==============================================================================
--- thrift/trunk/compiler/cpp/src/generate/t_js_generator.cc (original)
+++ thrift/trunk/compiler/cpp/src/generate/t_js_generator.cc Sun Apr  8 12:30:00 2012
@@ -1367,12 +1367,14 @@ void t_js_generator::generate_deserializ
   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()) {

Modified: thrift/trunk/test/nodejs/client.js
URL: http://svn.apache.org/viewvc/thrift/trunk/test/nodejs/client.js?rev=1310986&r1=1310985&r2=1310986&view=diff
==============================================================================
--- thrift/trunk/test/nodejs/client.js (original)
+++ thrift/trunk/test/nodejs/client.js Sun Apr  8 12:30:00 2012
@@ -114,8 +114,6 @@ client.testNest(out2, function(err, resp
 	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, res
   console.log("testMap(", mapout, ") = \n", response);
 	passed();
 });
-*/
 
 /*
  * TODO: testSet, testList, testEnum, testTypedef, testMapMap, testInsanity