aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2010-07-15 17:36:23 +0000
committerCary Coutant <ccoutant@google.com>2010-07-15 17:36:23 +0000
commit78384e8f7295dbaa04648c6ffcf77441807e5a99 (patch)
tree8ef6477b930441cf3933bb0bbebbcf61a8368b2a
parent6e8bd58f83483eae7876138516e0131e82cfa369 (diff)
downloadgdb-78384e8f7295dbaa04648c6ffcf77441807e5a99.zip
gdb-78384e8f7295dbaa04648c6ffcf77441807e5a99.tar.gz
gdb-78384e8f7295dbaa04648c6ffcf77441807e5a99.tar.bz2
* plugin.cc (Plugin_finish::run): Don't call cleanup handlers from here.
-rw-r--r--gold/ChangeLog5
-rw-r--r--gold/plugin.cc9
2 files changed, 10 insertions, 4 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index ac910cd..17113fb 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,8 @@
+2010-07-15 Cary Coutant <ccoutant@google.com>
+
+ * plugin.cc (Plugin_finish::run): Don't call cleanup handlers from
+ here.
+
2010-07-14 Ian Lance Taylor <iant@google.com>
* descriptors.cc (Descriptors::open): Report correct name in error
diff --git a/gold/plugin.cc b/gold/plugin.cc
index ba4bd4c..76b2431 100644
--- a/gold/plugin.cc
+++ b/gold/plugin.cc
@@ -862,7 +862,10 @@ Sized_pluginobj<size, big_endian>::do_get_global_symbols() const
}
// Class Plugin_finish. This task runs after all replacement files have
-// been added. It calls each plugin's cleanup handler.
+// been added. For now, it's a placeholder for a possible plugin API
+// to allow the plugin to release most of its resources. The cleanup
+// handlers must be called later, because they can remove the temporary
+// object files that are needed until the end of the link.
class Plugin_finish : public Task
{
@@ -892,9 +895,7 @@ class Plugin_finish : public Task
void
run(Workqueue*)
{
- Plugin_manager* plugins = parameters->options().plugins();
- gold_assert(plugins != NULL);
- plugins->cleanup();
+ // We could call early cleanup handlers here.
}
std::string