aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDeepak Bhole <[email protected]>2010-11-24 15:22:03 -0500
committerDeepak Bhole <[email protected]>2010-11-24 15:22:03 -0500
commit8a4ac3f07e3a60a8cf34fbe12b1b05219e865bf0 (patch)
tree0830d709a86d7ca59abe781bcce93d3ee3f142fb
parentc7a02ae1417fb3330aa12e85b191500815f92b64 (diff)
Fix PR593: Increment of invalidated iterator in IcedTeaPluginUtils (patch from [email protected])
-rw-r--r--ChangeLog9
-rw-r--r--NEWS1
-rw-r--r--plugin/icedteanp/IcedTeaPluginUtils.cc8
3 files changed, 16 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index a05865d..b3c76a0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2010-11-24 Deepak Bhole <[email protected]>
+ Fix PR593: Increment of invalidated iterator in IcedTeaPluginUtils (patch
+ * plugin/icedteanp/IcedTeaPluginUtils.cc
+ (invalidateInstance): Act on the pointer directly, rather than via
+ members.
+ * NEWS: Updated.
+
+2010-11-24 Deepak Bhole <[email protected]>
+
Fix PR552: Support for FreeBSD's pthread implementation (patch from
* plugin/icedteanp/IcedTeaNPPlugin.cc
diff --git a/NEWS b/NEWS
index e4c4c1d..8583d20 100644
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,7 @@ New in release 1.0 (2010-XX-XX):
- 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 [email protected])
- Applets are now double-buffered to eliminate flicker in ones that do heavy drawing
* NetX
- Add a new option -Xclearcache
diff --git a/plugin/icedteanp/IcedTeaPluginUtils.cc b/plugin/icedteanp/IcedTeaPluginUtils.cc
index 501cd32..69daef2 100644
--- a/plugin/icedteanp/IcedTeaPluginUtils.cc
+++ b/plugin/icedteanp/IcedTeaPluginUtils.cc
@@ -510,11 +510,15 @@ IcedTeaPluginUtilities::invalidateInstance(NPP instance)
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;
}
}
}