Fixed CPP Conversion of nested array types
authorErich Keane <erich.keane@intel.com>
Tue, 8 Sep 2015 20:21:14 +0000 (13:21 -0700)
committerJon A. Cruz <jonc@osg.samsung.com>
Wed, 9 Sep 2015 05:29:40 +0000 (05:29 +0000)
The CPP array type was incorrectly using reserve instead of
resize for the smaller vectors.  This resulted in the index-assignment
of each element to not work properly.  This patch fixes this, so that
the arrays are properly loaded.

Change-Id: I29eb78a1dc69602087ba9861a378f478d611b0f0
Signed-off-by: Erich Keane <erich.keane@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/2412
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com>
resource/src/OCRepresentation.cpp

index 70d699e..f65f4b0 100644 (file)
@@ -480,7 +480,7 @@ namespace OC
             std::vector<std::vector<T>> val(pl->arr.dimensions[0]);
             for(size_t i = 0; i < pl->arr.dimensions[0]; ++i)
             {
-                val[i].reserve(pl->arr.dimensions[1]);
+                val[i].resize(pl->arr.dimensions[1]);
                 for(size_t j = 0; j < pl->arr.dimensions[1]; ++j)
                 {
                     val[i][j] = payload_array_helper_copy<T>(
@@ -494,10 +494,10 @@ namespace OC
             std::vector<std::vector<std::vector<T>>> val;
             for(size_t i = 0; i < pl->arr.dimensions[0]; ++i)
             {
-                val[i].reserve(pl->arr.dimensions[1]);
+                val[i].resize(pl->arr.dimensions[1]);
                 for(size_t j = 0; j < pl->arr.dimensions[1]; ++j)
                 {
-                    val[i][j].reserve(pl->arr.dimensions[2]);
+                    val[i][j].resize(pl->arr.dimensions[2]);
                     for(size_t k = 0; k < pl->arr.dimensions[2]; ++k)
                     {
                         val[i][j][k] = payload_array_helper_copy<T>(