changeset 54:5267f9104d5f

Fix PR593: Increment of invalidated iterator in IcedTeaPluginUtils (patch from barbara.xxx1975@libero.it)
author Deepak Bhole <dbhole@redhat.com>
date Wed, 24 Nov 2010 15:22:03 -0500
parents a9d3a1d07478
children dcd3d1728ff4
files ChangeLog NEWS plugin/icedteanp/IcedTeaPluginUtils.cc
diffstat 3 files changed, 16 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Nov 24 15:17:54 2010 -0500
+++ b/ChangeLog	Wed Nov 24 15:22:03 2010 -0500
@@ -1,3 +1,12 @@
+2010-11-24  Deepak Bhole <dbhole@redhat.com>
+
+	Fix PR593: Increment of invalidated iterator in IcedTeaPluginUtils (patch
+	from barbara.xxx1975@libero.it)
+	* plugin/icedteanp/IcedTeaPluginUtils.cc
+	(invalidateInstance): Act on the pointer directly, rather than via
+	members.
+	* NEWS: Updated.
+
 2010-11-24  Deepak Bhole <dbhole@redhat.com>
 
 	Fix PR552: Support for FreeBSD's pthread implementation (patch from
--- a/NEWS	Wed Nov 24 15:17:54 2010 -0500
+++ b/NEWS	Wed Nov 24 15:22:03 2010 -0500
@@ -20,6 +20,7 @@
   - PR556: Applet initialization code is prone to race conditions
   - PR557: Applet opens in a separate window if tab is closed when the applet loads
   - PR565: UIDefaults.getUI fails with jgoodies:looks 2.3.1
+  - PR593: Increment of invalidated iterator in IcedTeaPluginUtils (patch from barbara.xxx1975@libero.it)
   - Applets are now double-buffered to eliminate flicker in ones that do heavy drawing
 * NetX
   - Add a new option -Xclearcache
--- a/plugin/icedteanp/IcedTeaPluginUtils.cc	Wed Nov 24 15:17:54 2010 -0500
+++ b/plugin/icedteanp/IcedTeaPluginUtils.cc	Wed Nov 24 15:22:03 2010 -0500
@@ -510,11 +510,15 @@
 
     std::map<void*,NPP>::iterator iterator;
 
-    for (iterator = instance_map->begin(); iterator != instance_map->end(); iterator++)
+    for (iterator = instance_map->begin(); iterator != instance_map->end(); )
     {
         if ((*iterator).second == instance)
         {
-            instance_map->erase((*iterator).first);
+            instance_map->erase(iterator++);
+        }
+        else
+        {
+            ++iterator;
         }
     }
 }