Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/austingebauer/devise.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/node-sass/src/libsass/src/memory/SharedPtr.cpp')
-rw-r--r--node_modules/node-sass/src/libsass/src/memory/SharedPtr.cpp114
1 files changed, 0 insertions, 114 deletions
diff --git a/node_modules/node-sass/src/libsass/src/memory/SharedPtr.cpp b/node_modules/node-sass/src/libsass/src/memory/SharedPtr.cpp
deleted file mode 100644
index 2530360..0000000
--- a/node_modules/node-sass/src/libsass/src/memory/SharedPtr.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-#include "../sass.hpp"
-#include <iostream>
-#include <typeinfo>
-
-#include "SharedPtr.hpp"
-#include "../ast_fwd_decl.hpp"
-
-#ifdef DEBUG_SHARED_PTR
-#include "../debugger.hpp"
-#endif
-
-namespace Sass {
-
- #ifdef DEBUG_SHARED_PTR
- void SharedObj::dumpMemLeaks() {
- if (!all.empty()) {
- std::cerr << "###################################\n";
- std::cerr << "# REPORTING MISSING DEALLOCATIONS #\n";
- std::cerr << "###################################\n";
- for (SharedObj* var : all) {
- if (AST_Node_Ptr ast = dynamic_cast<AST_Node*>(var)) {
- debug_ast(ast);
- } else {
- std::cerr << "LEAKED " << var << "\n";
- }
- }
- }
- }
- std::vector<SharedObj*> SharedObj::all;
- #endif
-
- bool SharedObj::taint = false;
-
- SharedObj::SharedObj()
- : detached(false)
- #ifdef DEBUG_SHARED_PTR
- , dbg(false)
- #endif
- {
- refcounter = 0;
- #ifdef DEBUG_SHARED_PTR
- if (taint) all.push_back(this);
- #endif
- };
-
- SharedObj::~SharedObj() {
- #ifdef DEBUG_SHARED_PTR
- if (dbg) std::cerr << "Destruct " << this << "\n";
- if(!all.empty()) { // check needed for MSVC (no clue why?)
- all.erase(std::remove(all.begin(), all.end(), this), all.end());
- }
- #endif
- };
-
- void SharedPtr::decRefCount() {
- if (node) {
- -- node->refcounter;
- #ifdef DEBUG_SHARED_PTR
- if (node->dbg) std::cerr << "- " << node << " X " << node->refcounter << " (" << this << ") " << "\n";
- #endif
- if (node->refcounter == 0) {
- #ifdef DEBUG_SHARED_PTR
- // AST_Node_Ptr ast = dynamic_cast<AST_Node*>(node);
- if (node->dbg) std::cerr << "DELETE NODE " << node << "\n";
- #endif
- if (!node->detached) {
- delete(node);
- }
- }
- }
- }
-
- void SharedPtr::incRefCount() {
- if (node) {
- ++ node->refcounter;
- node->detached = false;
- #ifdef DEBUG_SHARED_PTR
- if (node->dbg) {
- std::cerr << "+ " << node << " X " << node->refcounter << " (" << this << ") " << "\n";
- }
- #endif
- }
- }
-
- SharedPtr::~SharedPtr() {
- decRefCount();
- }
-
-
- // the create constructor
- SharedPtr::SharedPtr(SharedObj* ptr)
- : node(ptr) {
- incRefCount();
- }
- // copy assignment operator
- SharedPtr& SharedPtr::operator=(const SharedPtr& rhs) {
- void* cur_ptr = (void*) node;
- void* rhs_ptr = (void*) rhs.node;
- if (cur_ptr == rhs_ptr) {
- return *this;
- }
- decRefCount();
- node = rhs.node;
- incRefCount();
- return *this;
- }
-
- // the copy constructor
- SharedPtr::SharedPtr(const SharedPtr& obj)
- : node(obj.node) {
- incRefCount();
- }
-
-} \ No newline at end of file