Author: veithm
Date: Mon Mar 25 09:46:31 2013
New Revision: 1460567

URL: http://svn.apache.org/r1460567
Log:
Small bug fixes in Etch Code Generation and Runtime

Change-Id: Ia3507b790eb66947c8c1cf36605b1ae1ae4a699e

Modified:
    
etch/trunk/binding-cpp/runtime/src/main/serialization/EtchBinaryTaggedDataInput.cpp
    etch/trunk/binding-cpp/runtime/src/main/serialization/EtchTaggedData.cpp
    
etch/trunk/binding-cpp/runtime/src/main/serialization/EtchValidatorObject.cpp
    etch/trunk/binding-cpp/runtime/src/main/transport/EtchPacketizer.cpp
    etch/trunk/binding-cpp/runtime/toolchains/Windows_X86_32.toolchain

Modified: 
etch/trunk/binding-cpp/runtime/src/main/serialization/EtchBinaryTaggedDataInput.cpp
URL: 
http://svn.apache.org/viewvc/etch/trunk/binding-cpp/runtime/src/main/serialization/EtchBinaryTaggedDataInput.cpp?rev=1460567&r1=1460566&r2=1460567&view=diff
==============================================================================
--- 
etch/trunk/binding-cpp/runtime/src/main/serialization/EtchBinaryTaggedDataInput.cpp
 (original)
+++ 
etch/trunk/binding-cpp/runtime/src/main/serialization/EtchBinaryTaggedDataInput.cpp
 Mon Mar 25 09:46:31 2013
@@ -140,9 +140,13 @@ status_t EtchBinaryTaggedDataInput::read
     capu::SmartPointer<EtchValidator> v;
     if (t->getValidator(key, v) == ETCH_OK) { // read the value but ignore it.
       capu::SmartPointer<EtchObject> obj;
-      if (readValue(v, obj) == ETCH_OK) {
+      ret = readValue(v, obj);
+      if (ret == ETCH_OK) {
         sv->put(key, obj);
       }
+      else {
+        return ret;
+      }
     } else {
       capu::SmartPointer<EtchObject> obj;
       capu::SmartPointer<EtchValidator> val;
@@ -155,18 +159,19 @@ status_t EtchBinaryTaggedDataInput::read
 }
 
 status_t EtchBinaryTaggedDataInput::readValues(EtchArrayValue *av, 
capu::SmartPointer<EtchValidator> v) {
+  status_t ret = ETCH_OK;
   capu::SmartPointer<EtchValidator> validator;
-  v->getElementValidator(validator);
+  ret = v->getElementValidator(validator);
 
-  while (true) {
+  while (true && ret == ETCH_OK) {
     capu::SmartPointer<EtchObject> value;
-    readValue(validator, true, value);
+    ret = readValue(validator, true, value);
     if (value == NONE()) {
       break;
     }
-    av->add(value);
+    ret = av->add(value);
   }
-  return ETCH_OK;
+  return ret;
 }
 
 status_t 
EtchBinaryTaggedDataInput::startMessage(capu::SmartPointer<EtchMessage> 
&result) {

Modified: 
etch/trunk/binding-cpp/runtime/src/main/serialization/EtchTaggedData.cpp
URL: 
http://svn.apache.org/viewvc/etch/trunk/binding-cpp/runtime/src/main/serialization/EtchTaggedData.cpp?rev=1460567&r1=1460566&r2=1460567&view=diff
==============================================================================
--- etch/trunk/binding-cpp/runtime/src/main/serialization/EtchTaggedData.cpp 
(original)
+++ etch/trunk/binding-cpp/runtime/src/main/serialization/EtchTaggedData.cpp 
Mon Mar 25 09:46:31 2013
@@ -49,6 +49,11 @@ const EtchObjectType* EtchTaggedData::ge
 status_t EtchTaggedData::allocNativeArray(capu::int8_t typeCode, EtchType* 
customStructType, capu::int32_t dim, capu::int32_t length, 
capu::SmartPointer<EtchNativeArrayBase> &result) {
   const EtchObjectType* componentType = getComponentType(typeCode, 
customStructType, dim - 1);
 
+  if (!componentType) {
+    //unknown type code
+    return ETCH_ERROR;
+  }
+
   switch (componentType->getTypeId()) {
     case EOTID_INT32:
       result = new EtchNativeArray<capu::SmartPointer<EtchInt32> >(length, 
dim);

Modified: 
etch/trunk/binding-cpp/runtime/src/main/serialization/EtchValidatorObject.cpp
URL: 
http://svn.apache.org/viewvc/etch/trunk/binding-cpp/runtime/src/main/serialization/EtchValidatorObject.cpp?rev=1460567&r1=1460566&r2=1460567&view=diff
==============================================================================
--- 
etch/trunk/binding-cpp/runtime/src/main/serialization/EtchValidatorObject.cpp 
(original)
+++ 
etch/trunk/binding-cpp/runtime/src/main/serialization/EtchValidatorObject.cpp 
Mon Mar 25 09:46:31 2013
@@ -80,5 +80,9 @@ status_t EtchValidatorObject::Get(EtchRu
 }
 
 status_t 
EtchValidatorObject::getElementValidator(capu::SmartPointer<EtchValidator> 
&val) {
-  return EtchValidatorObject::Get(mRuntime, mNDims - 1, val);
+  if (mNDims > 0) {
+    return EtchValidatorObject::Get(mRuntime, mNDims - 1, val);
+  } else {
+    return EtchValidatorObject::Get(mRuntime, 0, val);
+  }
 }

Modified: etch/trunk/binding-cpp/runtime/src/main/transport/EtchPacketizer.cpp
URL: 
http://svn.apache.org/viewvc/etch/trunk/binding-cpp/runtime/src/main/transport/EtchPacketizer.cpp?rev=1460567&r1=1460566&r2=1460567&view=diff
==============================================================================
--- etch/trunk/binding-cpp/runtime/src/main/transport/EtchPacketizer.cpp 
(original)
+++ etch/trunk/binding-cpp/runtime/src/main/transport/EtchPacketizer.cpp Mon 
Mar 25 09:46:31 2013
@@ -197,7 +197,11 @@ status_t EtchPacketizer::sessionData(cap
         capu::uint32_t index = buf->getIndex();
         buf->setLength(index + mBodyLen);
         CAPU_LOG_DEBUG(mRuntime->getLogger(), TAG, "Header is parsed and the 
body of message is sent to Messagizer");
-        mSession->sessionPacket(sender, buf);
+        result = mSession->sessionPacket(sender, buf);
+
+        if (result != ETCH_OK) {
+          return result;
+        }
 
         buf->setLength(length);
         buf->setIndex(index + mBodyLen);

Modified: etch/trunk/binding-cpp/runtime/toolchains/Windows_X86_32.toolchain
URL: 
http://svn.apache.org/viewvc/etch/trunk/binding-cpp/runtime/toolchains/Windows_X86_32.toolchain?rev=1460567&r1=1460566&r2=1460567&view=diff
==============================================================================
--- etch/trunk/binding-cpp/runtime/toolchains/Windows_X86_32.toolchain 
(original)
+++ etch/trunk/binding-cpp/runtime/toolchains/Windows_X86_32.toolchain Mon Mar 
25 09:46:31 2013
@@ -34,8 +34,8 @@ add_definitions("-DOS_WINDOWS")
 add_definitions("-DARCH_X86_32")
 
 add_definitions("-D_VARIADIC_MAX=10") #this is needed for compiling gtest with 
visual studio 11
-add_definitions("-D_WIN32_WINNT=0x0501")
-add_definitions("-DWINVER=0x0501")
+add_definitions("-D_WIN32_WINNT=0x0600")
+add_definitions("-DWINVER=0x0600")
 
 # enable the BUILD_CHECK_MEMORY flag if you would like to check for memory 
leaks with visual leak detector
 #add_definitions("-DBUILD_CHECK_MEMORY")


Reply via email to