From: inv Date: Sun, 4 Mar 2012 14:25:56 +0000 (+0000) Subject: 0022815: Missing delete operator for placement new X-Git-Tag: V6_7_1~110 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=1f57100bab135f08fb1b3259696d209754f3bc54;p=occt-wok.git 0022815: Missing delete operator for placement new --- diff --git a/src/CPPExt/CPPExt_Template.edl b/src/CPPExt/CPPExt_Template.edl index af3c9b2..0e307ed 100755 --- a/src/CPPExt/CPPExt_Template.edl +++ b/src/CPPExt/CPPExt_Template.edl @@ -159,6 +159,9 @@ $ $#ifndef _Standard_HeaderFile $#include $#endif +$#ifndef _Standard_DefineAlloc_HeaderFile +$#include +$#endif $#ifndef _Standard_Macro_HeaderFile $#include $#endif @@ -169,18 +172,7 @@ $%ClassComment $class %Class %Inherits { $public: $ -$ void* operator new(size_t,void* anAddress) -$ { -$ return anAddress; -$ } -$ void* operator new(size_t size) -$ { -$ return Standard::Allocate(size); -$ } -$ void operator delete(void *anAddress) -$ { -$ if (anAddress) Standard::Free((Standard_Address&)anAddress); -$ } +$ DEFINE_STANDARD_ALLOC $ $%TICPublicmets $ @@ -254,6 +246,9 @@ $ $#ifndef _Standard_HeaderFile $#include $#endif +$#ifndef _Standard_DefineAlloc_HeaderFile +$#include +$#endif $#ifndef _Standard_Macro_HeaderFile $#include $#endif @@ -266,18 +261,8 @@ $%ClassComment $class %Class %Inherits { $ $public: -$ void* operator new(size_t,void* anAddress) -$ { -$ return anAddress; -$ } -$ void* operator new(size_t size) -$ { -$ return Standard::Allocate(size); -$ } -$ void operator delete(void *anAddress) -$ { -$ if (anAddress) Standard::Free((Standard_Address&)anAddress); -$ } +$ +$ DEFINE_STANDARD_ALLOC $ $%TICPublicmets $%TICPublicfriends diff --git a/src/WOKTools/WOKTools_DataMap.gxx b/src/WOKTools/WOKTools_DataMap.gxx index 14fa455..204499e 100755 --- a/src/WOKTools/WOKTools_DataMap.gxx +++ b/src/WOKTools/WOKTools_DataMap.gxx @@ -15,13 +15,8 @@ template class DataMapNode : public WOKTools_MapNode { public : DataMapNode(const Key& K, const Standard_Integer ahascode, const Item& I, DataMapNode* n) : WOKTools_MapNode(n), key(K), hashcode(ahascode) { value = I; } - void* operator new(size_t aSize) - {return Standard::Allocate(aSize);} -// void operator delete(void* aNode, size_t aSize) { - void operator delete(void* aNode) { -// Standard::Free(aNode,aSize); - Standard::Free(aNode); - } + + DEFINE_STANDARD_ALLOC Key key; Standard_Integer hashcode; @@ -36,13 +31,8 @@ class Node : public WOKTools_MapNode { public : Node(const TheKey& K, const Standard_Integer ahascode, const TheItem& I, Node* n) : WOKTools_MapNode(n), key(K), hashcode(ahascode) { value = I; } - void* operator new(size_t aSize) - {return Standard::Allocate(aSize);} -// void operator delete(void* aNode, size_t aSize) { - void operator delete(void* aNode) { -// Standard::Free(aNode,aSize); - Standard::Free(aNode); - } + + DEFINE_STANDARD_ALLOC TheKey key; Standard_Integer hashcode; diff --git a/src/WOKTools/WOKTools_DoubleMap.gxx b/src/WOKTools/WOKTools_DoubleMap.gxx index ac0220c..5d79983 100755 --- a/src/WOKTools/WOKTools_DoubleMap.gxx +++ b/src/WOKTools/WOKTools_DoubleMap.gxx @@ -16,11 +16,8 @@ template class DoubleMapNode : public WOKTools_MapNode{ public : Node(const Key1& K1, const Standard_Integer acode1, const Key2& K2, const Standard_Integer acode2, DoubleMapNode* n1, DoubleMapNode* n2) : WOKTools_MapNode(n1),key1(K1),hashcode1(acode1), key2(K2), hashcode2(acode2), next2(n2) {} - void* operator new(size_t aSize) - {return Standard::Allocate(aSize);} - void operator delete(void* aNode, size_t aSize) { - Standard::Free(aNode,aSize); - } + + DEFINE_STANDARD_ALLOC Key1 key1; Standard_Integer hashcode1; @@ -37,11 +34,8 @@ class Node : public WOKTools_MapNode{ public : Node(const TheKey1& K1, const Standard_Integer acode1, const TheKey2& K2, const Standard_Integer acode2, Node* n1, Node* n2) : WOKTools_MapNode(n1),key1(K1),hashcode1(acode1), key2(K2), hashcode2(acode2), next2(n2) {} - void* operator new(size_t aSize) - {return Standard::Allocate(aSize);} - void operator delete(void* aNode, size_t aSize) { - Standard::Free(aNode,aSize); - } + + DEFINE_STANDARD_ALLOC TheKey1 key1; Standard_Integer hashcode1; diff --git a/src/WOKTools/WOKTools_IndexedDataMap.gxx b/src/WOKTools/WOKTools_IndexedDataMap.gxx index c027a30..867e586 100755 --- a/src/WOKTools/WOKTools_IndexedDataMap.gxx +++ b/src/WOKTools/WOKTools_IndexedDataMap.gxx @@ -18,14 +18,8 @@ template class IndexedDataMapNode : public WOKTools_MapN IndexedDataMapNode(const Key& K1, const Standard_Integer K2, const Item& I, const Standard_Integer ahashcode, IndexedDataMapNode* n1, IndexedDataMapNode* n2) : WOKTools_MapNode(n1),key(K1),index(K2),value(I),next2(n2),hashcode(ahashcode) {} - void* operator new(size_t aSize) { - return Standard::Allocate(aSize); - } -// void operator delete(void* aNode, size_t aSize) { - void operator delete(void* aNode) { -// Standard::Free(aNode,aSize); - Standard::Free(aNode); - } + + DEFINE_STANDARD_ALLOC Key key; Standard_Integer index; @@ -43,14 +37,8 @@ class Node : public WOKTools_MapNode { Node(const TheKey& K1, const Standard_Integer K2, const TheItem& I, const Standard_Integer ahashcode, Node* n1, Node* n2) : WOKTools_MapNode(n1),key(K1),index(K2),hashcode(ahashcode),next2(n2) { value =I;} - void* operator new(size_t aSize) { - return Standard::Allocate(aSize); - } -// void operator delete(void* aNode, size_t aSize) { - void operator delete(void* aNode) { -// Standard::Free(aNode,aSize); - Standard::Free(aNode); - } + + DEFINE_STANDARD_ALLOC TheKey key; Standard_Integer index; diff --git a/src/WOKTools/WOKTools_IndexedMap.gxx b/src/WOKTools/WOKTools_IndexedMap.gxx index 2a2a2a9..6b3088c 100755 --- a/src/WOKTools/WOKTools_IndexedMap.gxx +++ b/src/WOKTools/WOKTools_IndexedMap.gxx @@ -16,14 +16,8 @@ template class IndexedMapNode : public WOKTools_MapNode { public : IndexedMapNode(const Key& K1, const Standard_Integer K2, const Standard_Integer ahashcode, IndexedMapNode* n1, IndexedMapNode* n2) : WOKTools_MapNode(n1),key(K1),index(K2),next2(n2),hashcode(ahashcode) {} - void* operator new(size_t aSize) { - return Standard::Allocate(aSize); - } -// void operator delete(void* aNode, size_t aSize) { - void operator delete(void* aNode) { -// Standard::Free(aNode,aSize); - Standard::Free(aNode); - } + + DEFINE_STANDARD_ALLOC Key key; Standard_Integer index; @@ -40,14 +34,8 @@ class Node : public WOKTools_MapNode { public : Node(const TheKey& K, const Standard_Integer theIndex, const Standard_Integer ahashcode, Node* n1, Node* n2) : WOKTools_MapNode(n1),key(K),index(theIndex),hashcode(ahashcode),next2(n2) {} - void* operator new(size_t aSize) { - return Standard::Allocate(aSize); - } -// void operator delete(void* aNode, size_t aSize) { - void operator delete(void* aNode) { -// Standard::Free(aNode,aSize); - Standard::Free(aNode); - } + + DEFINE_STANDARD_ALLOC TheKey key; Standard_Integer index; diff --git a/src/WOKTools/WOKTools_Map.gxx b/src/WOKTools/WOKTools_Map.gxx index 3e8040a..65ccb50 100755 --- a/src/WOKTools/WOKTools_Map.gxx +++ b/src/WOKTools/WOKTools_Map.gxx @@ -14,13 +14,9 @@ template class MapNode : public WOKTools_MapNode { public : MapNode(const TheKey& K, const Standard_Integer ahascode, MapNode* n) : WOKTools_MapNode(n),key(K), hashcode(ahascode) {} - void* operator new(size_t aSize) - {return Standard::Allocate(aSize);} -// void operator delete(void* aNode, size_t aSize) { - void operator delete(void* aNode) { -// Standard::Free(aNode,aSize); - Standard::Free(aNode); - } + + DEFINE_STANDARD_ALLOC + TheKey key; Standard_Integer hashcode; }; @@ -32,13 +28,9 @@ template class MapNode : public WOKTools_MapNode { class Node : public WOKTools_MapNode { public : Node(const TheKey& K, const Standard_Integer ahascode, Node* n) : WOKTools_MapNode(n),key(K), hashcode(ahascode) {} - void* operator new(size_t aSize) - {return Standard::Allocate(aSize);} -// void operator delete(void* aNode, size_t aSize) { - void operator delete(void* aNode) { -// Standard::Free(aNode,aSize); - Standard::Free(aNode); - } + + DEFINE_STANDARD_ALLOC + TheKey key; Standard_Integer hashcode; };