Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Tuples/Explode.cc

    r8d7bef2 r0b5d871  
    1515
    1616#include "Explode.h"
    17 #include <list>                  // for list
    18 
    19 #include "SynTree/Mutator.h"     // for Mutator
    20 #include "Common/PassVisitor.h"  // for PassVisitor
     17#include "SynTree/Mutator.h"
     18#include "Common/PassVisitor.h"
    2119
    2220namespace Tuples {
     
    7068                                // should now be a tuple of references rather than a reference to a tuple.
    7169                                // Still, this code is a bit awkward, and could use some improvement.
    72                                 UniqueExpr * newUniqueExpr = new UniqueExpr{ applyCast( uniqueExpr->get_expr() ), uniqueExpr->get_id() };
     70                                UniqueExpr * newUniqueExpr = new UniqueExpr( applyCast( uniqueExpr->get_expr() ), uniqueExpr->get_id() );
     71                                delete uniqueExpr;
    7372                                if ( castAdded ) {
    7473                                        // if a cast was added by applyCast, then unique expr now has one more layer of reference
     
    8786                                // field is consistent with the type of the tuple expr, since the field
    8887                                // may have changed from type T to T&.
    89                                 return new TupleIndexExpr( tupleExpr->get_tuple(), tupleExpr->get_index() );
     88                                Expression * expr = tupleExpr->get_tuple();
     89                                tupleExpr->set_tuple( nullptr );
     90                                TupleIndexExpr * ret = new TupleIndexExpr( expr, tupleExpr->get_index() );
     91                                delete tupleExpr;
     92                                return ret;
    9093                        }
    9194                };
Note: See TracChangeset for help on using the changeset viewer.