Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] DestroyedEvent for SharedLibraries

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/ChangeLog,v
retrieving revision 1.70
diff -u -r1.70 ChangeLog
--- ChangeLog	18 Jan 2003 00:37:13 -0000	1.70
+++ ChangeLog	18 Jan 2003 02:28:08 -0000
@@ -1,3 +1,11 @@
+2003-01-18 Alain Magloire
+
+	* src/.../mi/core/cdi/event/DestroyedEvent.java (DestroyedEvent):
+	Remove the deleted shared library from the list.
+	* src/.../mi/core/cdi/SharedLibraryManager.java (getUnloadedLibrary):
+	Get a shared library slated for unload.
+	(removeFromUnloadedList): Remove the library form the list.
+
 2003-01-17 Alain Magloire
 
 	* src/.../mi/core/output/MIInfoSharedLibraryInfo.java (parseWinShared):
Index: src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java,v
retrieving revision 1.4
diff -u -r1.4 SharedLibraryManager.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java	17 Jan 2003 21:33:03 -0000	1.4
+++ src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java	18 Jan 2003 02:28:10 -0000
@@ -32,12 +32,12 @@
 public class SharedLibraryManager extends SessionObject implements ICDISharedLibraryManager {
 
 	List sharedList;
-	List delList;
+	List unloadedList;
 
 	public SharedLibraryManager (CSession session) {
 		super(session);
 		sharedList = new ArrayList(1);
-		delList = new ArrayList(1);
+		unloadedList = new ArrayList(1);
 	}
 
 	public void update() throws CDIException {
@@ -83,7 +83,7 @@
 			if (!found) {
 				// Fire destroyed Events.
 				sharedList.remove(oldlibs[i]);
-				delList.add(oldlibs[i]);
+				unloadedList.add(oldlibs[i]);
 				eventList.add(new MISharedLibUnloadedEvent(oldlibs[i].getFileName())); 
 			}
 		}
@@ -112,6 +112,25 @@
 			}
 		}
 		return false;
+	}
+
+	public ICDISharedLibrary getUnloadedLibrary(String name) {
+		ICDISharedLibrary[] libs = (ICDISharedLibrary[])unloadedList.toArray(new ICDISharedLibrary[0]);
+		for (int i = 0; i < libs.length; i++) {
+			if (name.equals(libs[i].getFileName())) {
+					return libs[i];
+			}
+		}
+		return null;
+	}
+
+	public void removeFromUnloadedList(String name) {
+		ICDISharedLibrary[] libs = (ICDISharedLibrary[])unloadedList.toArray(new ICDISharedLibrary[0]);
+		for (int i = 0; i < libs.length; i++) {
+			if (name.equals(libs[i].getFileName())) {
+				unloadedList.remove(libs[i]);
+			}
+		}
 	}
 
 	public ICDISharedLibrary getSharedLibrary(String name) {
Index: src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java,v
retrieving revision 1.2
diff -u -r1.2 DestroyedEvent.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java	16 Jan 2003 16:19:47 -0000	1.2
+++ src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java	18 Jan 2003 02:28:10 -0000
@@ -60,8 +60,9 @@
 		session = s;
 		SharedLibraryManager mgr = (SharedLibraryManager)session.getSharedLibraryManager();
 		String name = slib.getName();
-		ICDISharedLibrary lib = mgr.getSharedLibrary(name);
+		ICDISharedLibrary lib = mgr.getUnloadedLibrary(name);
 		if (lib != null) {
+			mgr.removeFromUnloadedList(name);
 			source = lib;
 		} else {
 			source = new CObject(session.getCTarget());



Back to the top