From 1a68f59b7475a31debb2e1a2a8edb0a0f19cea4b Mon Sep 17 00:00:00 2001 From: terekhov Date: Wed, 18 Apr 2018 08:31:20 -0700 Subject: [PATCH] another fix --- Source/Mesh/mesh.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/Source/Mesh/mesh.cpp b/Source/Mesh/mesh.cpp index 697ee2d..b92507d 100644 --- a/Source/Mesh/mesh.cpp +++ b/Source/Mesh/mesh.cpp @@ -686,8 +686,8 @@ namespace INMOST Tag Mesh::DeleteTag(Tag tag, ElementType type_mask) { //std::cout << "Delete tag " << tag.GetTagName() << " type " << DataTypeName(tag.GetDataType()) << " on "; - for(ElementType etype = NODE; etype <= MESH; etype = NextElementType(etype)) if( (etype & type_mask) && tag.isDefined(etype) ) std::cout << ElementTypeName(etype) << " "; - std::cout << std::endl; + //for(ElementType etype = NODE; etype <= MESH; etype = NextElementType(etype)) if( (etype & type_mask) && tag.isDefined(etype) ) std::cout << ElementTypeName(etype) << " "; + //std::cout << std::endl; //deallocate data on elements for(ElementType etype = NODE; etype <= MESH; etype = NextElementType(etype)) { @@ -1875,16 +1875,9 @@ namespace INMOST if( data_pos == ENUMUNDEF ) continue; TagManager::dense_sub_type & arr = GetDenseData(data_pos); INMOST_DATA_ENUM_TYPE record_size = t->GetRecordSize(); - memcpy(&arr[new_addr],&arr[old_addr],record_size); -#if defined(USE_AUTODIFF) - if( t->GetDataType() == DATA_VARIABLE ) - { - variable * p = static_cast(static_cast(&arr[old_addr])); - for(INMOST_DATA_ENUM_TYPE j = 0; j < t->GetSize(); ++j) p[j] = 0.0; - } - else -#endif - memset(&arr[old_addr],0,record_size); + TagManager::CopyData(*t,static_cast(&arr[new_addr]),static_cast(&arr[old_addr])); + //memcpy(&arr[new_addr],&arr[old_addr],record_size); + DelDenseData(ComposeHandle(etypenum,old_addr),*t); } } } -- 2.26.2