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

Reply via email to