[haiku-commits] r38867 - haiku/trunk/src/add-ons/kernel/network/stack

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 1 Oct 2010 08:52:18 +0200 (CEST)

Author: axeld
Date: 2010-10-01 08:52:18 +0200 (Fri, 01 Oct 2010)
New Revision: 38867
Changeset: http://dev.haiku-os.org/changeset/38867
Ticket: http://dev.haiku-os.org/ticket/6565

Modified:
   haiku/trunk/src/add-ons/kernel/network/stack/interfaces.cpp
Log:
* Fixed a bug in get_interface() that would return the first interface
  without acquiring a reference to it, and thus led to bug #6565.
* Added a commented out function that dumps all current reference counts.


Modified: haiku/trunk/src/add-ons/kernel/network/stack/interfaces.cpp
===================================================================
--- haiku/trunk/src/add-ons/kernel/network/stack/interfaces.cpp 2010-10-01 
06:49:24 UTC (rev 38866)
+++ haiku/trunk/src/add-ons/kernel/network/stack/interfaces.cpp 2010-10-01 
06:52:18 UTC (rev 38867)
@@ -85,6 +85,22 @@
 static uint32 sInterfaceIndex;
 
 
+#if 0
+//! For debugging purposes only
+void
+dump_interface_refs(void)
+{
+       MutexLocker locker(sLock);
+
+       InterfaceList::Iterator iterator = sInterfaces.GetIterator();
+       while (Interface* interface = iterator.Next()) {
+               dprintf("%p: %s, %ld\n", interface, interface->name,
+                       interface->CountReferences());
+       }
+}
+#endif
+
+
 #if ENABLE_DEBUGGER_COMMANDS
 
 
@@ -1345,10 +1361,11 @@
 {
        MutexLocker locker(sLock);
 
+       Interface* interface;
        if (index == 0)
-               return sInterfaces.First();
-
-       Interface* interface = find_interface(index);
+               interface = sInterfaces.First();
+       else
+               interface = find_interface(index);
        if (interface == NULL)
                return NULL;
 


Other related posts:

  • » [haiku-commits] r38867 - haiku/trunk/src/add-ons/kernel/network/stack - axeld