summaryrefslogtreecommitdiff
path: root/src/expr/node_manager.cpp
diff options
context:
space:
mode:
authorMathias Preiner <mathias.preiner@gmail.com>2020-02-19 16:59:58 -0800
committerGitHub <noreply@github.com>2020-02-19 16:59:58 -0800
commit508ecb3007a2b6aa8b76b28dc8282247b5dba957 (patch)
treeb80cab956e6b40b4cd783ceb78393006c09782b5 /src/expr/node_manager.cpp
parent9705504973f6f85c6be4944c615984df7b614f67 (diff)
resource manager: Add statistic for every resource. (#3772)
This commit adds statistics for all resource steps. A resource statistic is incremented by 1 if the resource is spent (via `spendResource`). Fixes #3751.
Diffstat (limited to 'src/expr/node_manager.cpp')
-rw-r--r--src/expr/node_manager.cpp54
1 files changed, 27 insertions, 27 deletions
diff --git a/src/expr/node_manager.cpp b/src/expr/node_manager.cpp
index 39be675ec..367162420 100644
--- a/src/expr/node_manager.cpp
+++ b/src/expr/node_manager.cpp
@@ -91,34 +91,34 @@ namespace attr {
// attribute that stores the canonical bound variable list for function types
typedef expr::Attribute<attr::LambdaBoundVarListTag, Node> LambdaBoundVarListAttr;
-NodeManager::NodeManager(ExprManager* exprManager) :
- d_options(new Options()),
- d_statisticsRegistry(new StatisticsRegistry()),
- d_resourceManager(new ResourceManager()),
- d_registrations(new ListenerRegistrationList()),
- next_id(0),
- d_attrManager(new expr::attr::AttributeManager()),
- d_exprManager(exprManager),
- d_nodeUnderDeletion(NULL),
- d_inReclaimZombies(false),
- d_abstractValueCount(0),
- d_skolemCounter(0) {
+NodeManager::NodeManager(ExprManager* exprManager)
+ : d_options(new Options()),
+ d_statisticsRegistry(new StatisticsRegistry()),
+ d_resourceManager(new ResourceManager(*d_statisticsRegistry, *d_options)),
+ d_registrations(new ListenerRegistrationList()),
+ next_id(0),
+ d_attrManager(new expr::attr::AttributeManager()),
+ d_exprManager(exprManager),
+ d_nodeUnderDeletion(NULL),
+ d_inReclaimZombies(false),
+ d_abstractValueCount(0),
+ d_skolemCounter(0)
+{
init();
}
-NodeManager::NodeManager(ExprManager* exprManager,
- const Options& options) :
- d_options(new Options()),
- d_statisticsRegistry(new StatisticsRegistry()),
- d_resourceManager(new ResourceManager()),
- d_registrations(new ListenerRegistrationList()),
- next_id(0),
- d_attrManager(new expr::attr::AttributeManager()),
- d_exprManager(exprManager),
- d_nodeUnderDeletion(NULL),
- d_inReclaimZombies(false),
- d_abstractValueCount(0),
- d_skolemCounter(0)
+NodeManager::NodeManager(ExprManager* exprManager, const Options& options)
+ : d_options(new Options()),
+ d_statisticsRegistry(new StatisticsRegistry()),
+ d_resourceManager(new ResourceManager(*d_statisticsRegistry, *d_options)),
+ d_registrations(new ListenerRegistrationList()),
+ next_id(0),
+ d_attrManager(new expr::attr::AttributeManager()),
+ d_exprManager(exprManager),
+ d_nodeUnderDeletion(NULL),
+ d_inReclaimZombies(false),
+ d_abstractValueCount(0),
+ d_skolemCounter(0)
{
d_options->copyValues(options);
init();
@@ -228,12 +228,12 @@ NodeManager::~NodeManager() {
}
// defensive coding, in case destruction-order issues pop up (they often do)
+ delete d_resourceManager;
+ d_resourceManager = NULL;
delete d_statisticsRegistry;
d_statisticsRegistry = NULL;
delete d_registrations;
d_registrations = NULL;
- delete d_resourceManager;
- d_resourceManager = NULL;
delete d_attrManager;
d_attrManager = NULL;
delete d_options;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback