summaryrefslogtreecommitdiff
path: root/cpp/src/slice2freezej/Main.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2002-03-10 22:22:17 +0000
committerMark Spruiell <mes@zeroc.com>2002-03-10 22:22:17 +0000
commitb3137bd34922941dfc4835fdb82451d9cec7343c (patch)
tree9e8c3a8e0a6d4761f7de03acab452369759968e9 /cpp/src/slice2freezej/Main.cpp
parenttrivial fixes (diff)
downloadice-b3137bd34922941dfc4835fdb82451d9cec7343c.tar.bz2
ice-b3137bd34922941dfc4835fdb82451d9cec7343c.tar.xz
ice-b3137bd34922941dfc4835fdb82451d9cec7343c.zip
destroy BasicStream
Diffstat (limited to 'cpp/src/slice2freezej/Main.cpp')
-rw-r--r--cpp/src/slice2freezej/Main.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/cpp/src/slice2freezej/Main.cpp b/cpp/src/slice2freezej/Main.cpp
index 850b4e845c8..88bf0661753 100644
--- a/cpp/src/slice2freezej/Main.cpp
+++ b/cpp/src/slice2freezej/Main.cpp
@@ -190,6 +190,8 @@ FreezeGenerator::generate(UnitPtr& unit, const Dict& dict)
out << sb;
out << nl << "assert(o instanceof " << typeS << ");";
out << nl << "IceInternal.BasicStream __os = new IceInternal.BasicStream(Ice.Util.getInstance(communicator));";
+ out << nl << "try";
+ out << sb;
iter = 0;
writeMarshalUnmarshalCode(out, "", type, valS, true, iter, false);
out << nl << "java.nio.ByteBuffer __buf = __os.prepareWrite();";
@@ -197,6 +199,11 @@ FreezeGenerator::generate(UnitPtr& unit, const Dict& dict)
out << nl << "__buf.get(__r);";
out << nl << "return __r;";
out << eb;
+ out << nl << "finally";
+ out << sb;
+ out << nl << "__os.destroy();";
+ out << eb;
+ out << eb;
//
// decode
@@ -205,6 +212,8 @@ FreezeGenerator::generate(UnitPtr& unit, const Dict& dict)
<< "(byte[] b, Ice.Communicator communicator)";
out << sb;
out << nl << "IceInternal.BasicStream __is = new IceInternal.BasicStream(Ice.Util.getInstance(communicator));";
+ out << nl << "try";
+ out << sb;
out << nl << "__is.resize(b.length, true);";
out << nl << "java.nio.ByteBuffer __buf = __is.prepareRead();";
out << nl << "__buf.position(0);";
@@ -267,6 +276,11 @@ FreezeGenerator::generate(UnitPtr& unit, const Dict& dict)
}
out << nl << "return __r;";
out << eb;
+ out << nl << "finally";
+ out << sb;
+ out << nl << "__is.destroy();";
+ out << eb;
+ out << eb;
}
out << eb;