diff graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ArraySubstitutions.java @ 13971:3e5b9a4d5986

added Array.getLength substitution
author twisti
date Tue, 18 Feb 2014 13:21:11 -0800
parents aca7481e71d1
children cc76575f485c
line wrap: on
line diff
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ArraySubstitutions.java	Tue Feb 18 11:16:48 2014 -0800
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ArraySubstitutions.java	Tue Feb 18 13:21:11 2014 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,4 +36,13 @@
     public static Object newInstance(Class<?> componentType, int length) throws NegativeArraySizeException {
         return DynamicNewArrayNode.newArray(GuardingPiNode.guardingNonNull(componentType), length);
     }
+
+    @MethodSubstitution
+    public static int getLength(Object array) {
+        if (!array.getClass().isArray()) {
+            throw new IllegalArgumentException("Argument is not an array");
+        }
+        return ArrayLengthNode.arrayLength(array);
+    }
+
 }