X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgwalk.c;h=109f8effa0a1eead6407ec716389a80a7ed280fc;hb=b4647d67ab7885d5da32c2a30242fbc4ed93d81b;hp=a4e290c6224a8a8ebd58cc2e705358bcca75b580;hpb=a1e9069afa4fa1e16e2d176bcd7905d6a1ed4677;p=libfirm diff --git a/ir/ir/irgwalk.c b/ir/ir/irgwalk.c index a4e290c62..109f8effa 100644 --- a/ir/ir/irgwalk.c +++ b/ir/ir/irgwalk.c @@ -160,11 +160,15 @@ void irg_walk_core(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void irg_walk(ir_node *node, irg_walk_func *pre, irg_walk_func *post, void *env) { - ir_reserve_resources(current_ir_graph, IR_RESOURCE_IRN_VISITED); - inc_irg_visited(current_ir_graph); - assert(current_ir_graph == get_irn_irg(node)); + ir_graph *irg = get_irn_irg(node); + ir_graph *rem = current_ir_graph; + + current_ir_graph = irg; + ir_reserve_resources(irg, IR_RESOURCE_IRN_VISITED); + inc_irg_visited(irg); irg_walk_core(node, pre, post, env); - ir_free_resources(current_ir_graph, IR_RESOURCE_IRN_VISITED); + ir_free_resources(irg, IR_RESOURCE_IRN_VISITED); + current_ir_graph = rem; } /*