summaryrefslogtreecommitdiff
path: root/bug-8297640.patch
diff options
context:
space:
mode:
Diffstat (limited to 'bug-8297640.patch')
-rw-r--r--bug-8297640.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/bug-8297640.patch b/bug-8297640.patch
new file mode 100644
index 0000000..24f2c69
--- /dev/null
+++ b/bug-8297640.patch
@@ -0,0 +1,22 @@
+Index: src/com/google/testing/littlemock/LittleMock.java
+===================================================================
+--- src/com/google/testing/littlemock/LittleMock.java (revision 19)
++++ src/com/google/testing/littlemock/LittleMock.java (working copy)
+@@ -1268,6 +1268,17 @@
+ newInstance.setAccessible(true);
+ return (T) newInstance.invoke(null, clazz, constructorId);
+ } catch (Exception ignored) {}
++ // try dalvikvm, with change https://android-review.googlesource.com/#/c/52331/
++ try {
++ Method getConstructorId = ObjectStreamClass.class
++ .getDeclaredMethod("getConstructorId", Class.class);
++ getConstructorId.setAccessible(true);
++ final long constructorId = (Long) getConstructorId.invoke(null, Object.class);
++ final Method newInstance = ObjectStreamClass.class
++ .getDeclaredMethod("newInstance", Class.class, long.class);
++ newInstance.setAccessible(true);
++ return (T) newInstance.invoke(null, clazz, constructorId);
++ } catch (Exception ignored) {}
+ throw new IllegalStateException("unsafe create instance failed");
+ }
+