HPCC-17141 Fix -ve memory leak processing bitfields Reviewed-By: Shamser Ahmed <shamser.ahmed@lexisnexis.co.uk> Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
@@ -117,7 +117,7 @@ int rangeCompare(double value, ITypeInfo * targetType)
return rangeCompare(value, targetType->queryPromotedType());
case type_bitfield:
{
- unsigned __int64 maxValue = (I64C(1) << targetType->getBitSize()) - 1;
+ unsigned __int64 maxValue = (U64C(1) << targetType->getBitSize()) - 1;
if (value > maxValue)
return +1;
break;
@@ -1334,7 +1334,7 @@ BITFIELD{digit}+ {
}
Owned<ITypeInfo> int64 = makeIntType(8, false);
- ITypeInfo * type = makeBitfieldType(size, int64);
+ ITypeInfo * type = makeBitfieldType(size, int64.getClear());
assert(type!=NULL);
returnToken.setType(type);