mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-16 02:20:27 +08:00
Jdwp.class: Regenerated.
* classpath/lib/gnu/classpath/jdwp/Jdwp.class: Regenerated. * classpath/lib/gnu/classpath/jdwp/event/EventManager.class: Regenerated. * gnu/classpath/jdwp/event/EventManager.h: Regenerated. * gnu/classpath/jdwp/event/EventManager.java (getEventRequest): Rename to... (getEventRequests): ...this. Change return type to array of requests. Construct a list of all matching events and return them all. * gnu/classpath/jdwp/Jdwp.java (notify): Use getEventRequests and send event notifications for all matching requests. From-SVN: r124250
This commit is contained in:
parent
e91ada38ad
commit
9898e8391f
@ -1,3 +1,10 @@
|
||||
2007-04-27 Keith Seitz <keiths@redhat.com>
|
||||
|
||||
* classpath/lib/gnu/classpath/jdwp/Jdwp.class: Regenerated.
|
||||
* classpath/lib/gnu/classpath/jdwp/event/EventManager.class:
|
||||
Regenerated.
|
||||
* gnu/classpath/jdwp/event/EventManager.h: Regenerated.
|
||||
|
||||
2007-04-27 Keith Seitz <keiths@redhat.com>
|
||||
|
||||
* classpath/lib/gnu/classpath/jdwp/event/filters/
|
||||
|
@ -1,3 +1,14 @@
|
||||
2007-04-27 Keith Seitz <keiths@redhat.com>
|
||||
|
||||
* gnu/classpath/jdwp/event/EventManager.java
|
||||
(getEventRequest): Rename to...
|
||||
(getEventRequests): ...this.
|
||||
Change return type to array of requests.
|
||||
Construct a list of all matching events and return
|
||||
them all.
|
||||
* gnu/classpath/jdwp/Jdwp.java (notify): Use getEventRequests
|
||||
and send event notifications for all matching requests.
|
||||
|
||||
2007-04-27 Keith Seitz <keiths@redhat.com>
|
||||
|
||||
* gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Jdwp.java -- Virtual machine to JDWP back-end programming interface
|
||||
Copyright (C) 2005, 2006 Free Software Foundation
|
||||
Copyright (C) 2005, 2006, 2007 Free Software Foundation
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -207,23 +207,22 @@ public class Jdwp
|
||||
* The event is filtered through the event manager before being
|
||||
* sent.
|
||||
*
|
||||
* FIXME: Probably need logic to send multiple events
|
||||
* FIXME: Probably need logic to send multiple (different) events
|
||||
* @param event the event to report
|
||||
*/
|
||||
public static void notify (Event event)
|
||||
public static void notify(Event event)
|
||||
{
|
||||
Jdwp jdwp = getDefault ();
|
||||
Jdwp jdwp = getDefault();
|
||||
if (jdwp != null)
|
||||
{
|
||||
EventManager em = EventManager.getDefault ();
|
||||
EventRequest request = em.getEventRequest (event);
|
||||
if (request != null)
|
||||
EventManager em = EventManager.getDefault();
|
||||
EventRequest[] requests = em.getEventRequests(event);
|
||||
for (int i = 0; i < requests.length; ++i)
|
||||
{
|
||||
try
|
||||
{
|
||||
System.out.println ("Jdwp.notify: sending event " + event);
|
||||
sendEvent (request, event);
|
||||
jdwp._enforceSuspendPolicy (request.getSuspendPolicy ());
|
||||
sendEvent(requests[i], event);
|
||||
jdwp._enforceSuspendPolicy(requests[i].getSuspendPolicy());
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@ -44,6 +44,7 @@ import gnu.classpath.jdwp.VMVirtualMachine;
|
||||
import gnu.classpath.jdwp.exception.InvalidEventTypeException;
|
||||
import gnu.classpath.jdwp.exception.JdwpException;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Iterator;
|
||||
@ -146,39 +147,39 @@ public class EventManager
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a request for the given event. This method will only
|
||||
* Returns all requests for the given event. This method will only
|
||||
* be used if the <code>EventManager</code> is handling event filtering.
|
||||
*
|
||||
* @param event the event
|
||||
* @return request that was interested in this event
|
||||
* @return requests that are interested in this event
|
||||
* or <code>null</code> if none (and event should not be sent)
|
||||
* @throws IllegalArgumentException for invalid event kind
|
||||
*/
|
||||
public EventRequest getEventRequest (Event event)
|
||||
public EventRequest[] getEventRequests(Event event)
|
||||
{
|
||||
EventRequest interestedRequest = null;
|
||||
ArrayList interestedEvents = new ArrayList();
|
||||
Hashtable requests;
|
||||
Byte kind = new Byte (event.getEventKind ());
|
||||
requests = (Hashtable) _requests.get (kind);
|
||||
Byte kind = new Byte(event.getEventKind());
|
||||
requests = (Hashtable) _requests.get(kind);
|
||||
if (requests == null)
|
||||
{
|
||||
// Did not get a valid event type
|
||||
throw new IllegalArgumentException ("invalid event kind: " + kind);
|
||||
throw new IllegalArgumentException("invalid event kind: " + kind);
|
||||
}
|
||||
boolean match = false;
|
||||
|
||||
// Loop through the requests. Must look at ALL requests in order
|
||||
// to evaluate all filters (think count filter).
|
||||
// TODO: What if multiple matches? Spec isn't so clear on this.
|
||||
Iterator rIter = requests.values().iterator ();
|
||||
while (rIter.hasNext ())
|
||||
Iterator rIter = requests.values().iterator();
|
||||
while (rIter.hasNext())
|
||||
{
|
||||
EventRequest request = (EventRequest) rIter.next ();
|
||||
if (request.matches (event))
|
||||
interestedRequest = request;
|
||||
EventRequest request = (EventRequest) rIter.next();
|
||||
if (request.matches(event))
|
||||
interestedEvents.add(request);
|
||||
}
|
||||
|
||||
return interestedRequest;
|
||||
EventRequest[] r = new EventRequest[interestedEvents.size()];
|
||||
interestedEvents.toArray(r);
|
||||
return r;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Binary file not shown.
Binary file not shown.
@ -7,6 +7,8 @@
|
||||
#pragma interface
|
||||
|
||||
#include <java/lang/Object.h>
|
||||
#include <gcj/array.h>
|
||||
|
||||
extern "Java"
|
||||
{
|
||||
namespace gnu
|
||||
@ -34,7 +36,7 @@ public:
|
||||
private:
|
||||
EventManager();
|
||||
public:
|
||||
virtual ::gnu::classpath::jdwp::event::EventRequest * getEventRequest(::gnu::classpath::jdwp::event::Event *);
|
||||
virtual JArray< ::gnu::classpath::jdwp::event::EventRequest * > * getEventRequests(::gnu::classpath::jdwp::event::Event *);
|
||||
virtual void requestEvent(::gnu::classpath::jdwp::event::EventRequest *);
|
||||
virtual void deleteRequest(jbyte, jint);
|
||||
virtual void clearRequests(jbyte);
|
||||
|
Loading…
x
Reference in New Issue
Block a user