From: aclement Date: Tue, 5 Jan 2010 00:44:36 +0000 (+0000) Subject: 298786: non-optimal exclude pattern issue X-Git-Tag: V1_6_8~12 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=a9688904c8041bd2bbb28817fbb82833522340c2;p=aspectj.git 298786: non-optimal exclude pattern issue --- diff --git a/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java b/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java index 694e7afb5..d531105bd 100644 --- a/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java +++ b/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java @@ -815,6 +815,24 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor { } } // include are "OR"ed + if (includeStar) { + return true; + } + if (!includeExactName.isEmpty()) { + didSomeIncludeMatching = true; + for (String exactname : includeExactName) { + if (fastClassName.equals(exactname)) { + return true; + } + } + } + for (int i = 0; i < m_includeStartsWith.size(); i++) { + didSomeIncludeMatching = true; + boolean fastaccept = fastClassName.startsWith(m_includeStartsWith.get(i)); + if (fastaccept) { + return true; + } + } accept = !didSomeIncludeMatching; // only true if no includes at all for (TypePattern typePattern : includeTypePattern) { accept = typePattern.matchesStatically(classInfo);