[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] r5123 - in /trunk/getfem: interface/src/ src/ src/getfe
From: |
logari81 |
Subject: |
[Getfem-commits] r5123 - in /trunk/getfem: interface/src/ src/ src/getfem/ |
Date: |
Wed, 04 Nov 2015 22:40:14 -0000 |
Author: logari81
Date: Wed Nov 4 23:40:14 2015
New Revision: 5123
URL: http://svn.gna.org/viewcvs/getfem?rev=5123&view=rev
Log:
avoid uninitialized variables and dangling pointers
Modified:
trunk/getfem/interface/src/gf_mesh_set.cc
trunk/getfem/src/getfem/getfem_generic_assembly.h
trunk/getfem/src/getfem_contact_and_friction_common.cc
trunk/getfem/src/getfem_generic_assembly.cc
Modified: trunk/getfem/interface/src/gf_mesh_set.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/interface/src/gf_mesh_set.cc?rev=5123&r1=5122&r2=5123&view=diff
==============================================================================
--- trunk/getfem/interface/src/gf_mesh_set.cc (original)
+++ trunk/getfem/interface/src/gf_mesh_set.cc Wed Nov 4 23:40:14 2015
@@ -59,24 +59,24 @@
}
static void intersect_regions(getfem::mesh &mesh, getfemint::mexargs_in& in) {
- unsigned ir1 = in.pop().to_integer(1,100000);
- unsigned ir2 = in.pop().to_integer(1,100000);
+ unsigned ir1 = in.pop().to_integer(1,1000000);
+ unsigned ir2 = in.pop().to_integer(1,1000000);
getfem::mesh_region &r1 = mesh.region(ir1);
getfem::mesh_region &r2 = mesh.region(ir2);
r1 = getfem::mesh_region::intersection(r1, r2);
}
static void merge_regions(getfem::mesh &mesh, getfemint::mexargs_in& in) {
- unsigned ir1 = in.pop().to_integer(1,100000);
- unsigned ir2 = in.pop().to_integer(1,100000);
+ unsigned ir1 = in.pop().to_integer(1,1000000);
+ unsigned ir2 = in.pop().to_integer(1,1000000);
getfem::mesh_region &r1 = mesh.region(ir1);
getfem::mesh_region &r2 = mesh.region(ir2);
r1 = getfem::mesh_region::merge(r1, r2);
}
static void subtract_regions(getfem::mesh &mesh, getfemint::mexargs_in& in) {
- unsigned ir1 = in.pop().to_integer(1,100000);
- unsigned ir2 = in.pop().to_integer(1,100000);
+ unsigned ir1 = in.pop().to_integer(1,1000000);
+ unsigned ir2 = in.pop().to_integer(1,1000000);
getfem::mesh_region &r1 = mesh.region(ir1);
getfem::mesh_region &r2 = mesh.region(ir2);
r1 = getfem::mesh_region::subtract(r1, r2);
Modified: trunk/getfem/src/getfem/getfem_generic_assembly.h
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/getfem_generic_assembly.h?rev=5123&r1=5122&r2=5123&view=diff
==============================================================================
--- trunk/getfem/src/getfem/getfem_generic_assembly.h (original)
+++ trunk/getfem/src/getfem/getfem_generic_assembly.h Wed Nov 4 23:40:14 2015
@@ -88,7 +88,7 @@
{ tab[name] = pt; }
~ga_predef_operator_tab() {
for (T::iterator it = tab.begin(); it != tab.end(); ++it)
- delete it->second;
+ { delete it->second; it->second = 0; }
}
};
@@ -166,7 +166,10 @@
const mesh_region *rg;
ga_tree *ptree;
base_vector elem;
- tree_description() : ptree(0) {}
+ tree_description()
+ : name_test1(""), name_test2(""),
+ interpolate_name_test1(""), interpolate_name_test2(""),
+ mim(0), m(0), rg(0), ptree(0), elem(0) {}
void copy(const tree_description& td);
tree_description(const tree_description& td) { copy(td); }
tree_description &operator =(const tree_description& td);
@@ -203,7 +206,7 @@
ga_tree *ptree;
size_type meshdim;
bool ignore_X;
- m_tree() : ptree(0) {}
+ m_tree() : ptree(0), meshdim(-1), ignore_X(false) {}
m_tree(const m_tree& o);
m_tree &operator =(const m_tree& o);
~m_tree();
@@ -236,7 +239,7 @@
if (todelete) ptr = new model_real_sparse_matrix(smp());
return *this;
}
- ~sparse_matrix_ptr() { if (todelete) delete ptr; }
+ ~sparse_matrix_ptr() { if (todelete) delete ptr; ptr = 0; }
};
struct base_vector_ptr {
@@ -259,7 +262,7 @@
if (todelete) ptr = new base_vector(smp());
return *this;
}
- ~base_vector_ptr() { if (todelete) delete ptr; }
+ ~base_vector_ptr() { if (todelete) delete ptr; ptr = 0; }
};
sparse_matrix_ptr K;
@@ -571,7 +574,7 @@
mutable ga_instruction_set *gis;
public:
- ga_function() : gis(0) {}
+ ga_function() : local_workspace(), expr(""), gis(0) {}
ga_function(const model &md, const std::string &e);
ga_function(const ga_workspace &workspace_, const std::string &e);
ga_function(const std::string &e);
Modified: trunk/getfem/src/getfem_contact_and_friction_common.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_contact_and_friction_common.cc?rev=5123&r1=5122&r2=5123&view=diff
==============================================================================
--- trunk/getfem/src/getfem_contact_and_friction_common.cc (original)
+++ trunk/getfem/src/getfem_contact_and_friction_common.cc Wed Nov 4
23:40:14 2015
@@ -1327,7 +1327,8 @@
mutable model_real_plain_vector U_unred; // Unreduced displacement
bool slave;
- contact_boundary() {}
+ contact_boundary()
+ : region(-1), mfu(0), dispname(""), U(0), U_unred(0), slave(false) {}
contact_boundary(size_type r, const mesh_fem *mf, const std::string dn,
bool sl)
: region(r), mfu(mf), dispname(dn), slave(sl) {}
@@ -1338,7 +1339,8 @@
size_type ind_element; // Element number
short_type ind_face; // Face number in element
base_small_vector mean_normal; // Mean outward normal unit vector
- face_box_info() {}
+ face_box_info()
+ : ind_boundary(-1), ind_element(-1), ind_face(-1), mean_normal(0) {}
face_box_info(size_type ib, size_type ie,
short_type iff, const base_small_vector &n)
: ind_boundary(ib), ind_element(ie), ind_face(iff), mean_normal(n) {}
Modified: trunk/getfem/src/getfem_generic_assembly.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_generic_assembly.cc?rev=5123&r1=5122&r2=5123&view=diff
==============================================================================
--- trunk/getfem/src/getfem_generic_assembly.cc (original)
+++ trunk/getfem/src/getfem_generic_assembly.cc Wed Nov 4 23:40:14 2015
@@ -469,23 +469,28 @@
}
ga_tree_node(void)
- : node_type(GA_NODE_VOID), test_function_type(size_type(-1)), qdim1(0),
- qdim2(0), pos(0), der1(0), der2(0), symmetric_op(false), hash_value(0)
{}
+ : node_type(GA_NODE_VOID), test_function_type(-1),
+ qdim1(0), qdim2(0), nbc1(0), nbc2(0), nbc3(0),
+ pos(0), der1(0), der2(0), symmetric_op(false), hash_value(0) {}
ga_tree_node(GA_NODE_TYPE ty, size_type p)
- : node_type(ty), test_function_type(size_type(-1)), qdim1(0), qdim2(0),
+ : node_type(ty), test_function_type(-1),
+ qdim1(0), qdim2(0), nbc1(0), nbc2(0), nbc3(0),
pos(p), der1(0), der2(0), symmetric_op(false), hash_value(0) {}
ga_tree_node(scalar_type v, size_type p)
- : node_type(GA_NODE_CONSTANT), test_function_type(size_type(-1)),
- qdim1(0), qdim2(0), pos(p), der1(0), der2(0), symmetric_op(false),
+ : node_type(GA_NODE_CONSTANT), test_function_type(-1),
+ qdim1(0), qdim2(0), nbc1(0), nbc2(0), nbc3(0),
+ pos(p), der1(0), der2(0), symmetric_op(false),
hash_value(0)
{ init_scalar_tensor(v); }
ga_tree_node(const char *n, size_type l, size_type p)
- : node_type(GA_NODE_NAME), test_function_type(size_type(-1)), qdim1(0),
- qdim2(0), pos(p), name(n, l), der1(0), der2(0), symmetric_op(false),
+ : node_type(GA_NODE_NAME), test_function_type(-1),
+ qdim1(0), qdim2(0), nbc1(0), nbc2(0), nbc3(0),
+ pos(p), name(n, l), der1(0), der2(0), symmetric_op(false),
hash_value(0) {}
ga_tree_node(GA_TOKEN_TYPE op, size_type p)
- : node_type(GA_NODE_OP), test_function_type(size_type(-1)), qdim1(0),
- qdim2(0), pos(p), der1(0), der2(0), op_type(op), symmetric_op(false),
+ : node_type(GA_NODE_OP), test_function_type(-1),
+ qdim1(0), qdim2(0), nbc1(0), nbc2(0), nbc3(0),
+ pos(p), der1(0), der2(0), op_type(op), symmetric_op(false),
hash_value(0) {}
};
@@ -918,14 +923,14 @@
if (version && ntype1 == GA_NODE_OP && pnode1->symmetric_op) {
if (sub_tree_are_equal(pnode1->children[0], pnode2->children[0],
- workspace, version) &&
+ workspace, version) &&
sub_tree_are_equal(pnode1->children[1], pnode2->children[1],
- workspace, version))
+ workspace, version))
return true;
if (sub_tree_are_equal(pnode1->children[1], pnode2->children[0],
- workspace, version) &&
+ workspace, version) &&
sub_tree_are_equal(pnode1->children[0], pnode2->children[1],
- workspace, version) )
+ workspace, version) )
return true;
return false;
} else {
@@ -1930,8 +1935,10 @@
std::map<scalar_type, std::list<pga_tree_node> > node_list;
~region_mim_instructions(void) {
- for (size_type i = 0; i < instructions.size(); ++i)
+ for (size_type i = 0; i < instructions.size(); ++i) {
delete instructions[i];
+ instructions[i] = 0;
+ }
}
region_mim_instructions(void): m(0) {}
};
@@ -3426,7 +3433,7 @@
return 0;
const std::string &varname
= inin.m ? workspace.variable_in_group(gname, *(inin.m))
- : workspace.first_variable_of_group(gname);
+ : workspace.first_variable_of_group(gname);
vgi.mf = workspace.associated_mf(varname);
vgi.Ir = gis.var_intervals[varname];
vgi.In = workspace.interval_of_variable(varname);
@@ -5603,9 +5610,9 @@
ga_workspace::tree_description &ga_workspace::tree_description::operator =
(const ga_workspace::tree_description& td)
- { if (ptree) delete ptree; copy(td); return *this; }
+ { if (ptree) delete ptree; ptree = 0; copy(td); return *this; }
ga_workspace::tree_description::~tree_description()
- { if (ptree) delete ptree; }
+ { if (ptree) delete ptree; ptree = 0; }
//=========================================================================
// Some hash code functions for node identification
@@ -6104,7 +6111,7 @@
if (ndt == 1) {
if (!(workspace.interpolate_transformation_exists
- (pnode->interpolate_name))) {
+ (pnode->interpolate_name))) {
ga_throw_error(expr, pnode->pos,
"Unknown interpolate transformation");
}
@@ -7025,9 +7032,8 @@
workspace.test1.insert
(var_trans_pair(pnode->name_test1,
pnode->interpolate_name_test1));
- pnode->qdim1
- = (mf ? workspace.qdim(name)
- : gmm::vect_size(workspace.value(name)));
+ pnode->qdim1 = mf ? workspace.qdim(name)
+ : gmm::vect_size(workspace.value(name));
if (!(pnode->qdim1))
ga_throw_error(expr, pnode->pos,
"Invalid null size of variable");
@@ -7038,9 +7044,8 @@
workspace.test2.insert
(var_trans_pair(pnode->name_test2,
pnode->interpolate_name_test2));
- pnode->qdim2
- = (mf ? workspace.qdim(name)
- : gmm::vect_size(workspace.value(name)));
+ pnode->qdim2 = mf ? workspace.qdim(name)
+ : gmm::vect_size(workspace.value(name));
if (!(pnode->qdim2))
ga_throw_error(expr, pnode->pos,
"Invalid null size of variable");
@@ -10602,7 +10607,7 @@
return *this;
}
- ga_function::~ga_function() { if (gis) delete gis; }
+ ga_function::~ga_function() { if (gis) delete gis; gis = 0; }
const base_tensor &ga_function::eval(void) const {
GMM_ASSERT1(gis, "Uncompiled function");
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r5123 - in /trunk/getfem: interface/src/ src/ src/getfem/,
logari81 <=