]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Move assertion whether we are out of memory to the location where we allocate it.
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Sun, 1 Mar 2015 16:15:19 +0000 (10:15 -0600)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Sun, 1 Mar 2015 19:08:07 +0000 (13:08 -0600)
include/deal.II/lac/vector.h
include/deal.II/lac/vector.templates.h

index 34bd772289f84a0e2945c381244ce459004d7c5d..4873249fecfcf87a9ceb7e4450cb36ee8cd38871 100644 (file)
@@ -1050,9 +1050,8 @@ void Vector<Number>::reinit (const size_type n, const bool fast)
   if (n>max_vec_size)
     {
       if (val) deallocate();
-      allocate(n);
-      Assert (val != 0, ExcOutOfMemory());
       max_vec_size = n;
+      allocate(max_vec_size);
     };
   vec_size = n;
   if (fast == false)
index 2beda3f21a03081620b57e2fb4b927767f88ce71..02c4e722f9053f27463742d3371816b2d25c10c3 100644 (file)
@@ -575,7 +575,6 @@ Vector<Number>::Vector (const Vector<Number> &v)
   if (vec_size != 0)
     {
       allocate(max_vec_size);
-      Assert (val != 0, ExcOutOfMemory());
       *this = v;
     }
 }
@@ -595,7 +594,6 @@ Vector<Number>::Vector (const Vector<OtherNumber> &v)
   if (vec_size != 0)
     {
       allocate(max_vec_size);
-      Assert (val != 0, ExcOutOfMemory());
       std::copy (v.begin(), v.end(), begin());
     }
 }
@@ -616,7 +614,6 @@ Vector<Number>::Vector (const PETScWrappers::Vector &v)
   if (vec_size != 0)
     {
       allocate(max_vec_size);
-      Assert (val != 0, ExcOutOfMemory());
 
       // get a representation of the vector
       // and copy it
@@ -668,7 +665,6 @@ Vector<Number>::Vector (const TrilinosWrappers::MPI::Vector &v)
   if (vec_size != 0)
     {
       allocate(max_vec_size);
-      Assert (val != 0, ExcOutOfMemory());
 
       // Copy the distributed vector to
       // a local one at all
@@ -702,7 +698,6 @@ Vector<Number>::Vector (const TrilinosWrappers::Vector &v)
   if (vec_size != 0)
     {
       allocate(max_vec_size);
-      Assert (val != 0, ExcOutOfMemory());
 
       // get a representation of the vector
       // and copy it
@@ -2051,6 +2046,7 @@ void
 Vector<Number>::allocate(const size_type size)
 {
   val = static_cast<Number *>(_mm_malloc (sizeof(Number)*size, 64));
+  Assert (val != 0, ExcOutOfMemory());
 }
 
 

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.