diff options
author | Marc Laukien <marc@zeroc.com> | 2005-03-08 18:19:54 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2005-03-08 18:19:54 +0000 |
commit | 8a01aa552bbb06d0e9184840c82dc856f9d75274 (patch) | |
tree | 8d78c0daf1ccfbca1660d334071c25812cd4bb58 /cpp/src/slice2cpp | |
parent | fix ant task removal (diff) | |
download | ice-8a01aa552bbb06d0e9184840c82dc856f9d75274.tar.bz2 ice-8a01aa552bbb06d0e9184840c82dc856f9d75274.tar.xz ice-8a01aa552bbb06d0e9184840c82dc856f9d75274.zip |
more GCShared/Shared cleanup
Diffstat (limited to 'cpp/src/slice2cpp')
-rw-r--r-- | cpp/src/slice2cpp/Gen.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index a37fdbfd02d..ef49c9f0eb5 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -654,7 +654,6 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p) { H << sp << nl << "static " << name << " __" << p->name() << "_init;"; } - } bool @@ -2914,7 +2913,8 @@ Slice::Gen::ObjectVisitor::emitGCFunctions(const ClassDefPtr& p) C << sp << nl << "void" << nl << scoped.substr(2) << "::__incRef()"; C << sb; C << nl << "IceUtil::gcRecMutex._m->lock();"; - C << nl << "if(__getRefUnsafe() == 0)"; + C << nl << "assert(_ref >= 0);"; + C << nl << "if(_ref == 0)"; C << sb; C.zeroIndent(); C << nl << "#ifdef NDEBUG // To avoid annoying warnings about variables that are not used..."; @@ -2929,7 +2929,7 @@ Slice::Gen::ObjectVisitor::emitGCFunctions(const ClassDefPtr& p) C << nl << "#endif"; C.restoreIndent(); C << eb; - C << nl << "__incRefUnsafe();"; + C << nl << "++_ref;"; C << nl << "IceUtil::gcRecMutex._m->unlock();"; C << eb; @@ -2939,8 +2939,8 @@ Slice::Gen::ObjectVisitor::emitGCFunctions(const ClassDefPtr& p) C << sb; C << nl << "IceUtil::gcRecMutex._m->lock();"; C << nl << "bool doDelete = false;"; - C << nl << "__decRefUnsafe();"; - C << nl << "if(__getRefUnsafe() == 0)"; + C << nl << "assert(_ref > 0);"; + C << nl << "if(--_ref == 0)"; C << sb; C << nl << "doDelete = !_noDelete;"; C << nl << "_noDelete = true;"; @@ -2958,7 +2958,7 @@ Slice::Gen::ObjectVisitor::emitGCFunctions(const ClassDefPtr& p) C.restoreIndent(); C << eb; C << nl << "IceUtil::gcRecMutex._m->unlock();"; - C << sp << nl << "if(doDelete) // Outside the lock to avoid deadlock."; + C << nl << "if(doDelete)"; C << sb; C << nl << "delete this;"; C << eb; |