Using get_pure_expr() can avoid duplication for some expression types. Signed-off-by: Tomek Grabiec <tgrab...@gmail.com> --- jit/object-bc.c | 3 +-- test/jit/object-bc-test.c | 7 +------ 2 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/jit/object-bc.c b/jit/object-bc.c index b88423c..25b4847 100644 --- a/jit/object-bc.c +++ b/jit/object-bc.c @@ -289,12 +289,11 @@ static int convert_array_store(struct parse_context *ctx, enum vm_type type) if (!store_stmt) goto failed; - arrayref_pure = get_pure_expr(ctx, arrayref); index_pure = get_pure_expr(ctx, index); dest_expr = array_deref_expr(type, arrayref_pure, index_pure); - src_expr = dup_expr(ctx, value); + src_expr = get_pure_expr(ctx, value); store_stmt->store_dest = &dest_expr->node; store_stmt->store_src = &src_expr->node; diff --git a/test/jit/object-bc-test.c b/test/jit/object-bc-test.c index d4d5208..72f1b1e 100644 --- a/test/jit/object-bc-test.c +++ b/test/jit/object-bc-test.c @@ -352,8 +352,7 @@ static void assert_convert_array_store(enum vm_type expected_type, stmt = stmt_entry(bb->stmt_list.next); struct statement *arrayref_pure_stmt = stmt; - struct statement *value_dup_stmt = stmt_entry(arrayref_pure_stmt->stmt_list_node.next); - struct statement *arraycheck_stmt = stmt_entry(value_dup_stmt->stmt_list_node.next); + struct statement *arraycheck_stmt = stmt_entry(arrayref_pure_stmt->stmt_list_node.next); struct statement *storecheck_stmt = stmt_entry(arraycheck_stmt->stmt_list_node.next); struct statement *store_stmt = stmt_entry(storecheck_stmt->stmt_list_node.next); @@ -362,10 +361,6 @@ static void assert_convert_array_store(enum vm_type expected_type, arrayref_pure_stmt->store_src); assert_temporary_expr(J_REFERENCE, arrayref_pure_stmt->store_dest); - assert_store_stmt(value_dup_stmt); - assert_ptr_equals(&expr->node, value_dup_stmt->store_src); - assert_temporary_expr(expected_type, value_dup_stmt->store_dest); - assert_arraycheck_stmt(expected_type, to_expr(arrayref_pure_stmt->store_dest), index_expr, -- 1.6.0.6 ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel