[omniORB] Client-side leak using Sequence<Any> as an out parameter

david.sansom@db.com david.sansom@db.com
Thu, 23 Mar 2000 12:08:17 +0000



Hi,

I seem to be picking up a sizeable client-side memory leak (MSVC 5 / NT
4.0 / OnmiOrb 2.7.1) when using a Sequence of Anys as an out variable.
My interface (simplified) provides a simple SQL query function : you
supply a string of Sql, and you get back the number or rows, number of
columns, and the data in a vector (lRows * lCols elements) of Any.

IDL:

interface Query
{
  typedef sequence<any> ResultSet;

  long selectQuery(in string selectSQL, out long rows, out long cols,
out ResultSet results);
};

Client Code:

Query_var qv;

//Create Query_var object etc
....
//

{
  CORBA::String_var strQuery(CORBA::string_dup("Some Sql"));

  CORBA::Long lRows = 0;
  CORBA::Long lCols = 0;

  Query::ResultSet_var vrs;

  CORBA::Long lRet = qv->selectQuery(strQuery,lRows,lCols,vrs);
}

I seem to leak on each and every call to selectQuery, even though I
might have hoped that when the Query::ResultSet_var goes out of scope it
would tidy up after itself.

Am I missing something simple ?

David Sansom
Fixed Income & Relative Value Research
Deutsche Bank AG (London)
0171 545 4886
david.sansom@db.com