diff --git a/include/bytecode.h b/include/bytecode.h index c1b280813..1586bbfe3 100644 --- a/include/bytecode.h +++ b/include/bytecode.h @@ -445,6 +445,7 @@ MACHINE_TYPE(natural, unsigned long, naught) case NATURAL: { Natural *xn = (Natural *) tree; + Release(xn); if (xn->IsSigned()) { type = integer_mtype; @@ -455,20 +456,20 @@ MACHINE_TYPE(natural, unsigned long, naught) type = natural_mtype; as_natural = xn->value; } - Release(xn); return *this; } case REAL: { Real *xr = (Real *) tree; + Release(xr); type = real_mtype; as_real = xr->value; - Release(xr); return *this; } case TEXT: { Text *xt = (Text *) tree; + Release(xt); if (xt->IsCharacter()) { type = character_mtype; @@ -479,7 +480,6 @@ MACHINE_TYPE(natural, unsigned long, naught) type = text_mtype; as_text = new text(xt->value); } - Release(xt); return *this; } case NAME: