Explorar o código

Fix a couple of memory leaks

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Gavin Halliday %!s(int64=13) %!d(string=hai) anos
pai
achega
81a8aeb923
Modificáronse 2 ficheiros con 3 adicións e 3 borrados
  1. 2 2
      ecl/hql/hqlexpr.cpp
  2. 1 1
      ecl/hqlcpp/hqlhtcpp.cpp

+ 2 - 2
ecl/hql/hqlexpr.cpp

@@ -7466,7 +7466,7 @@ inline bool canMergeDefinition(IHqlExpression * expr)
 IHqlExpression * CHqlMergedScope::lookupSymbol(_ATOM searchName, unsigned lookupFlags, HqlLookupContext & ctx)
 {
     CriticalBlock block(cs);
-    IHqlExpression * resolved = CHqlScope::lookupSymbol(searchName, lookupFlags, ctx);
+    OwnedHqlExpr resolved = CHqlScope::lookupSymbol(searchName, lookupFlags, ctx);
     if (resolved)
     {
         node_operator resolvedOp = resolved->getOperator();
@@ -7479,7 +7479,7 @@ IHqlExpression * CHqlMergedScope::lookupSymbol(_ATOM searchName, unsigned lookup
         if (resolvedOp == no_merge_nomatch)
             return NULL;
         if (resolvedOp != no_nobody)
-            return resolved;
+            return resolved.getClear();
     }
     else
     {

+ 1 - 1
ecl/hqlcpp/hqlhtcpp.cpp

@@ -4134,7 +4134,7 @@ void HqlCppTranslator::buildMetaInfo(MetaInstance & instance)
                 getctx.addQuoted(s.str());
                 getctx.addQuoted("const unsigned char * left = (const unsigned char *)data;");
 
-                LinkedHqlExpr selfDs = createDataset(no_null, LINK(instance.queryRecord()));
+                OwnedHqlExpr selfDs = createDataset(no_null, LINK(instance.queryRecord()));
                 BoundRow * selfRow = bindTableCursorOrRow(getctx, selfDs, "left");
                 OwnedHqlExpr size = getRecordSize(selfRow->querySelector());
                 buildReturn(getctx, size);