diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 67c1389af5e3..eac885ae7e39 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,15 @@ +2007-04-27 Keith Seitz + + * classpath/lib/gnu/classpath/jdwp/event/filters/ + LocationOnlyFilter.class: Regenerated; + * classpath/lib/gnu/classpath/jdwp/util/Location.class: + Regenerated. + * gnu/classpath/jdwp/VMMethod.java + * classpath/lib/gnu/classpath/jdwp/VMMethod.class: + Regenerated. + * gnu/classpath/jdwp/VMMethod.h: Regenerated. + * gnu/classpath/jdwp/util/Location.h: Regenerated. + 2007-04-27 Thomas Fitzsimmons * gnu/java/awt/peer/gtk/CairoGraphics2D.h: Regenerate. diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog index 4877b1de2f08..e9ad54b28b79 100644 --- a/libjava/classpath/ChangeLog +++ b/libjava/classpath/ChangeLog @@ -1,3 +1,12 @@ +2007-04-27 Keith Seitz + + * gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java + (matches): Use Location.equals to determine equality. + * gnu/classpath/jdwp/VMMethod.java (equals): + New method. + * gnu/classpath/jdwp/util/Location.java (equals): + New method. + 2007-03-16 Francis Kung * gnu/java/awt/peer/gtk/CairoGraphics2D.java diff --git a/libjava/classpath/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java b/libjava/classpath/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java index 7190317a4aee..a3125371c5d3 100644 --- a/libjava/classpath/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java +++ b/libjava/classpath/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java @@ -1,5 +1,5 @@ /* LocationOnlyFilter.java -- filter on location - Copyright (C) 2005, 2006 Free Software Foundation + Copyright (C) 2005, 2006, 2007 Free Software Foundation This file is part of GNU Classpath. @@ -49,13 +49,6 @@ import gnu.classpath.jdwp.util.Location; * May be used with breakpoint, field access, field modification, step, * and exception event kinds. * - * This "filter" is not really a filter. It is simply a way to communicate - * location information for supported events in a generic way to ease - * the burden of special casing several things in - * EventReqeustCommandSet.executeSet. - * - * Consequently, this "filter" always matches any event. - * * @author Keith Seitz (keiths@redhat.com) */ public class LocationOnlyFilter @@ -90,9 +83,12 @@ public class LocationOnlyFilter * * @param event the Event to scrutinize */ - public boolean matches (Event event) + public boolean matches(Event event) { - // This filter always matches. See comments in class javadoc. - return true; + Location loc = (Location) event.getParameter(Event.EVENT_LOCATION); + if (loc != null) + return (getLocation().equals(loc)); + + return false; } } diff --git a/libjava/classpath/gnu/classpath/jdwp/util/Location.java b/libjava/classpath/gnu/classpath/jdwp/util/Location.java index 89e81e563a1c..ff045a5eccca 100644 --- a/libjava/classpath/gnu/classpath/jdwp/util/Location.java +++ b/libjava/classpath/gnu/classpath/jdwp/util/Location.java @@ -1,5 +1,5 @@ /* Location.java -- class to read/write JDWP locations - Copyright (C) 2005, 2006 Free Software Foundation + Copyright (C) 2005, 2006, 2007 Free Software Foundation This file is part of GNU Classpath. @@ -153,4 +153,16 @@ public class Location { return method.toString () + "." + index; } + + public boolean equals(Object obj) + { + if (obj instanceof Location) + { + Location l = (Location) obj; + return (getMethod().equals(l.getMethod()) + && getIndex() == l.getIndex()); + } + + return false; + } } diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/VMMethod.class b/libjava/classpath/lib/gnu/classpath/jdwp/VMMethod.class index 25cc9e0c40f0..e19c61b51095 100644 Binary files a/libjava/classpath/lib/gnu/classpath/jdwp/VMMethod.class and b/libjava/classpath/lib/gnu/classpath/jdwp/VMMethod.class differ diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.class index 1e8d19b24e62..a76fdfdcfcc4 100644 Binary files a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.class and b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.class differ diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/util/Location.class b/libjava/classpath/lib/gnu/classpath/jdwp/util/Location.class index 593418c29b7d..ed85dd09e7de 100644 Binary files a/libjava/classpath/lib/gnu/classpath/jdwp/util/Location.class and b/libjava/classpath/lib/gnu/classpath/jdwp/util/Location.class differ diff --git a/libjava/gnu/classpath/jdwp/VMMethod.h b/libjava/gnu/classpath/jdwp/VMMethod.h index f1bf3d76cfd5..00f4d874c080 100644 --- a/libjava/gnu/classpath/jdwp/VMMethod.h +++ b/libjava/gnu/classpath/jdwp/VMMethod.h @@ -49,6 +49,7 @@ public: virtual ::java::lang::String * toString(); virtual void writeId(::java::io::DataOutputStream *); static ::gnu::classpath::jdwp::VMMethod * readId(::java::lang::Class *, ::java::nio::ByteBuffer *); + virtual jboolean equals(::java::lang::Object *); static const jint SIZE = 8; private: ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _class; diff --git a/libjava/gnu/classpath/jdwp/VMMethod.java b/libjava/gnu/classpath/jdwp/VMMethod.java index d345bc1b515c..6a2b04ecf979 100644 --- a/libjava/gnu/classpath/jdwp/VMMethod.java +++ b/libjava/gnu/classpath/jdwp/VMMethod.java @@ -1,5 +1,5 @@ /* VMMethod.java -- a method in a virtual machine - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -175,4 +175,15 @@ public class VMMethod { return VMVirtualMachine.getClassMethod(klass, bb.getLong()); } + + public boolean equals(Object obj) + { + if (obj instanceof VMMethod) + { + VMMethod m = (VMMethod) obj; + return (getId() == m.getId()); + } + + return false; + } } diff --git a/libjava/gnu/classpath/jdwp/util/Location.h b/libjava/gnu/classpath/jdwp/util/Location.h index 4b7427482500..2e8710533aaa 100644 --- a/libjava/gnu/classpath/jdwp/util/Location.h +++ b/libjava/gnu/classpath/jdwp/util/Location.h @@ -43,6 +43,7 @@ public: virtual ::gnu::classpath::jdwp::VMMethod * getMethod(); virtual jlong getIndex(); virtual ::java::lang::String * toString(); + virtual jboolean equals(::java::lang::Object *); private: ::gnu::classpath::jdwp::VMMethod * __attribute__((aligned(__alignof__( ::java::lang::Object)))) method; jlong index;