diff options
author | Mark Spruiell <mes@zeroc.com> | 2012-09-27 10:16:31 -0700 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2012-09-27 10:16:31 -0700 |
commit | ced0ab85cf66c785352333ecf72214fb069793dd (patch) | |
tree | 16866cdab7f97dec35d0c216d83cfeb901d91ed0 /cpp/src/Slice/JavaUtil.cpp | |
parent | ICE-4859 - test/Ice/hash slice should be generated in test.Ice.hash package (diff) | |
download | ice-ced0ab85cf66c785352333ecf72214fb069793dd.tar.bz2 ice-ced0ab85cf66c785352333ecf72214fb069793dd.tar.xz ice-ced0ab85cf66c785352333ecf72214fb069793dd.zip |
clean up optional tests; bug fixes for Java/C#
Diffstat (limited to 'cpp/src/Slice/JavaUtil.cpp')
-rw-r--r-- | cpp/src/Slice/JavaUtil.cpp | 63 |
1 files changed, 16 insertions, 47 deletions
diff --git a/cpp/src/Slice/JavaUtil.cpp b/cpp/src/Slice/JavaUtil.cpp index 4799dd1313d..c8f1effe0a5 100644 --- a/cpp/src/Slice/JavaUtil.cpp +++ b/cpp/src/Slice/JavaUtil.cpp @@ -1678,6 +1678,7 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out, } string ignore; + const size_t wireSize = elemType->minWireSize(); if(marshal) { @@ -1722,24 +1723,11 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out, tmpName = v; } - if(!elemBuiltin || - (elemBuiltin->kind() != Builtin::KindByte && elemBuiltin->kind() != Builtin::KindBool)) + if(wireSize > 1) { out << nl << "final int __optSize = " << tmpName << " == null ? 0 : " << tmpName << ".size();"; - const size_t wireSize = elemType->minWireSize(); - - if(wireSize > 1) - { - out << nl << stream << ".writeSize(__optSize > 254 ? __optSize * " << wireSize - << " + 5 : __optSize * " << wireSize << " + 1);"; - } - else - { - // - // The element type could be a struct with a wire size of 1. - // - out << nl << stream << ".writeSize(__optSize > 254 ? __optSize + 5 : __optSize + 1);"; - } + out << nl << stream << ".writeSize(__optSize > 254 ? __optSize * " << wireSize + << " + 5 : __optSize * " << wireSize << " + 1);"; } writeSequenceMarshalUnmarshalCode(out, package, seq, tmpName, marshal, iter, true, metaData); } @@ -1769,24 +1757,11 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out, tmpName = v; } - if(!elemBuiltin || (elemBuiltin->kind() != Builtin::KindByte && - elemBuiltin->kind() != Builtin::KindBool)) + if(wireSize > 1) { out << nl << "final int __optSize = " << tmpName << " == null ? 0 : " << tmpName << ".length;"; - const size_t wireSize = elemType->minWireSize(); - - if(wireSize > 1) - { - out << nl << stream << ".writeSize(__optSize > 254 ? __optSize * " << wireSize - << " + 5 : __optSize * " << wireSize << " + 1);"; - } - else - { - // - // The element type could be a struct with a wire size of 1. - // - out << nl << stream << ".writeSize(__optSize > 254 ? __optSize + 5 : __optSize + 1);"; - } + out << nl << stream << ".writeSize(__optSize > 254 ? __optSize * " << wireSize + << " + 5 : __optSize * " << wireSize << " + 1);"; } writeSequenceMarshalUnmarshalCode(out, package, seq, tmpName, marshal, iter, true, metaData); @@ -1816,25 +1791,19 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out, { out << nl << stream << ".skip(4);"; } - else if(findMetaData("java:type:", metaData, ignore) || - findMetaData("java:type:", seq->getMetaData(), ignore)) + else if(wireSize > 1) { - // - // The sequence is an instance of java.util.List<E>, where E is a fixed-size type. - // If the element type is bool or byte, we do NOT write an extra size. - // - - if(!elemBuiltin || - (elemBuiltin->kind() != Builtin::KindByte && elemBuiltin->kind() != Builtin::KindBool)) + if(findMetaData("java:type:", metaData, ignore) || + findMetaData("java:type:", seq->getMetaData(), ignore)) { + // + // The sequence is an instance of java.util.List<E>, where E is a fixed-size type. + // + out << nl << stream << ".skipSize();"; } - } - else if(!findMetaData("java:protobuf:", seq->getMetaData(), ignore) && - !findMetaData("java:serializable:", seq->getMetaData(), ignore)) - { - if(!elemBuiltin || - (elemBuiltin->kind() != Builtin::KindByte && elemBuiltin->kind() != Builtin::KindBool)) + else if(!findMetaData("java:protobuf:", seq->getMetaData(), ignore) && + !findMetaData("java:serializable:", seq->getMetaData(), ignore)) { out << nl << stream << ".skipSize();"; } |