Mercurial > hg > release > icedtea6-1.13
changeset 2980:ab418eb1e664
Fix typo in ICEDTEA_PATCHES.
2013-04-16 Andrew John Hughes <gnu.andrew@redhat.com>
* Makefile.am:
(ICEDTEA_PATCHES): Add missing backslash (oops!)
* patches/openjdk/7024568-long_method_resolution_oom_error.patch:
Fix patch that doesn't apply cleanly.
author | Andrew John Hughes <gnu.andrew@redhat.com> |
---|---|
date | Tue, 16 Apr 2013 18:39:51 +0100 |
parents | f9540cbade1e |
children | fe8749a2c67c |
files | ChangeLog Makefile.am patches/openjdk/7024568-long_method_resolution_oom_error.patch |
diffstat | 3 files changed, 31 insertions(+), 37 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Tue Apr 16 17:11:46 2013 +0100 +++ b/ChangeLog Tue Apr 16 18:39:51 2013 +0100 @@ -1,3 +1,10 @@ +2013-04-16 Andrew John Hughes <gnu.andrew@redhat.com> + + * Makefile.am: + (ICEDTEA_PATCHES): Add missing backslash (oops!) + * patches/openjdk/7024568-long_method_resolution_oom_error.patch: + Fix patch that doesn't apply cleanly. + 2013-03-11 Andrew John Hughes <gnu.andrew@member.fsf.org> PR1339: Simplify the rewriter, avoiding concurrency.
--- a/Makefile.am Tue Apr 16 17:11:46 2013 +0100 +++ b/Makefile.am Tue Apr 16 18:39:51 2013 +0100 @@ -487,7 +487,7 @@ patches/copy_memory.patch \ patches/openjdk/6718364-inference_failure.patch \ patches/openjdk/6682380-foreach_crash.patch \ - patches/openjdk/7046929-fix_t6397104_test_failure.patch + patches/openjdk/7046929-fix_t6397104_test_failure.patch \ patches/openjdk/7024568-long_method_resolution_oom_error.patch \ patches/openjdk/7003595-incompatibleclasschangeerror.patch \ patches/openjdk/6500343-bad_code_from_conditionals.patch
--- a/patches/openjdk/7024568-long_method_resolution_oom_error.patch Tue Apr 16 17:11:46 2013 +0100 +++ b/patches/openjdk/7024568-long_method_resolution_oom_error.patch Tue Apr 16 18:39:51 2013 +0100 @@ -1,52 +1,41 @@ -# HG changeset patch -# User mcimadamore -# Date 1299507108 0 -# Node ID 74f0c05c51eb8e4ce08cdf8a3b8a33e36b09b5b2 -# Parent 5e6c661891da3dfbf371c1186df6cc0a77224951 -7024568: Very long method resolution causing OOM error -Summary: Resolve.findMethod scans same receiver type more than once in certain inheritance graphs -Reviewed-by: jjg -Contributed-by: jan.lahoda@oracle.com - -diff --git a/src/share/classes/com/sun/tools/javac/comp/Resolve.java b/src/share/classes/com/sun/tools/javac/comp/Resolve.java ---- openjdk/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java -+++ openjdk/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java -@@ -45,7 +45,9 @@ +diff -Nru openjdk.orig/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java openjdk/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java +--- openjdk.orig/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java 2013-04-16 17:29:24.789670017 +0100 ++++ openjdk/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java 2013-04-16 17:36:54.208874016 +0100 +@@ -38,6 +38,10 @@ + import static com.sun.tools.javac.code.Flags.*; + import static com.sun.tools.javac.code.Kinds.*; + import static com.sun.tools.javac.code.TypeTags.*; ++ ++import java.util.Set; ++import java.util.HashSet; ++ import javax.lang.model.element.ElementVisitor; - import java.util.Map; -+import java.util.Set; - import java.util.HashMap; -+import java.util.HashSet; - /** Helper class for name resolution, used mostly by the attribution phase. - * -@@ -896,7 +898,8 @@ - bestSoFar, +@@ -719,7 +723,8 @@ + methodNotFound, allowBoxing, useVarargs, - operator); + operator, -+ new HashSet<TypeSymbol>()); ++ new HashSet<TypeSymbol>()); } // where private Symbol findMethod(Env<AttrContext> env, -@@ -909,11 +912,13 @@ +@@ -732,9 +737,11 @@ Symbol bestSoFar, boolean allowBoxing, boolean useVarargs, - boolean operator) { + boolean operator, + Set<TypeSymbol> seen) { - for (Type ct = intype; ct.tag == CLASS || ct.tag == TYPEVAR; ct = types.supertype(ct)) { - while (ct.tag == TYPEVAR) - ct = ct.getUpperBound(); + for (Type ct = intype; ct.tag == CLASS; ct = types.supertype(ct)) { ClassSymbol c = (ClassSymbol)ct.tsym; + if (!seen.add(c)) return bestSoFar; if ((c.flags() & (ABSTRACT | INTERFACE | ENUM)) == 0) abstractok = false; for (Scope.Entry e = c.members().lookup(name); -@@ -942,7 +947,7 @@ +@@ -761,7 +768,7 @@ bestSoFar = findMethod(env, site, name, argtypes, typeargtypes, l.head, abstractok, bestSoFar, @@ -55,10 +44,9 @@ } if (concrete != bestSoFar && concrete.kind < ERR && bestSoFar.kind < ERR && -diff --git a/test/tools/javac/7024568/T7024568.java b/test/tools/javac/7024568/T7024568.java -new file mode 100644 ---- /dev/null -+++ openjdk/langtools/test/tools/javac/7024568/T7024568.java +diff -Nru openjdk.orig/langtools/test/tools/javac/7024568/T7024568.java openjdk/langtools/test/tools/javac/7024568/T7024568.java +--- openjdk.orig/langtools/test/tools/javac/7024568/T7024568.java 1970-01-01 01:00:00.000000000 +0100 ++++ openjdk/langtools/test/tools/javac/7024568/T7024568.java 2013-04-16 17:34:57.014990669 +0100 @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. @@ -106,10 +94,9 @@ +interface C extends A, B, Test {} +interface D extends A, B, C, Test {} +interface E extends A, B, C, D, Test {} -diff --git a/test/tools/javac/7024568/T7024568.out b/test/tools/javac/7024568/T7024568.out -new file mode 100644 ---- /dev/null -+++ openjdk/langtools/test/tools/javac/7024568/T7024568.out +diff -Nru openjdk.orig/langtools/test/tools/javac/7024568/T7024568.out openjdk/langtools/test/tools/javac/7024568/T7024568.out +--- openjdk.orig/langtools/test/tools/javac/7024568/T7024568.out 1970-01-01 01:00:00.000000000 +0100 ++++ openjdk/langtools/test/tools/javac/7024568/T7024568.out 2013-04-16 17:34:57.014990669 +0100 @@ -0,0 +1,2 @@ +T7024568.java:32:40: compiler.err.cant.resolve.location: kindname.variable, undefined, , , (compiler.misc.location: kindname.class, Main, null) +1 error