summaryrefslogtreecommitdiffstats
path: root/source/core/slang-object-scope-manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/core/slang-object-scope-manager.cpp')
-rw-r--r--source/core/slang-object-scope-manager.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/source/core/slang-object-scope-manager.cpp b/source/core/slang-object-scope-manager.cpp
new file mode 100644
index 000000000..313bd4cd5
--- /dev/null
+++ b/source/core/slang-object-scope-manager.cpp
@@ -0,0 +1,23 @@
+#include "slang-object-scope-manager.h"
+
+namespace Slang {
+
+void ObjectScopeManager::_releaseAll()
+{
+ RefObject*const* objs = m_objs.begin();
+ const int numObjs = int(m_objs.Count());
+ for (int i = 0; i < numObjs; ++i)
+ {
+ objs[i]->decreaseReference();
+ }
+}
+
+void ObjectScopeManager::clear()
+{
+ _releaseAll();
+ // Free the memory as well as resizing
+ m_objs = List<RefObject*>();
+}
+
+} // namespace Slang
+