From: kayser-herold Date: Thu, 27 Jul 2006 21:48:12 +0000 (+0000) Subject: Improve algorithm a bit by adding a safety check. Fix one bug where we referenced... X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=97d87ac962d2fa5c5419a5ce45333f26900868f9;p=dealii-svn.git Improve algorithm a bit by adding a safety check. Fix one bug where we referenced dofs_per_line when it should have been dofs_per_quad git-svn-id: https://svn.dealii.org/trunk@13461 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/source/dofs/hp_dof_objects.cc b/deal.II/deal.II/source/dofs/hp_dof_objects.cc index 39ab7eb8c4..498acfd316 100644 --- a/deal.II/deal.II/source/dofs/hp_dof_objects.cc +++ b/deal.II/deal.II/source/dofs/hp_dof_objects.cc @@ -467,11 +467,16 @@ namespace internal Assert (*pointer != deal_II_numbers::invalid_unsigned_int, ExcInternalError()); + const unsigned int fe_index = *pointer; + + Assert (fe_index < dof_handler.get_fe().size(), + ExcInternalError()); + if (counter == n) - return *pointer; + return fe_index; ++counter; - pointer += dof_handler.get_fe()[*pointer].dofs_per_line + 1; + pointer += dof_handler.get_fe()[fe_index].dofs_per_line + 1; } } @@ -767,11 +772,16 @@ namespace internal Assert (*pointer != deal_II_numbers::invalid_unsigned_int, ExcInternalError()); + const unsigned int fe_index = *pointer; + + Assert (fe_index < dof_handler.get_fe().size(), + ExcInternalError()); + if (counter == n) - return *pointer; + return fe_index; ++counter; - pointer += dof_handler.get_fe()[*pointer].dofs_per_line + 1; + pointer += dof_handler.get_fe()[fe_index].dofs_per_line + 1; } } @@ -1270,11 +1280,16 @@ namespace internal Assert (*pointer != deal_II_numbers::invalid_unsigned_int, ExcInternalError()); + const unsigned int fe_index = *pointer; + + Assert (fe_index < dof_handler.get_fe().size(), + ExcInternalError()); + if (counter == n) - return *pointer; + return fe_index; ++counter; - pointer += dof_handler.get_fe()[*pointer].dofs_per_line + 1; + pointer += dof_handler.get_fe()[fe_index].dofs_per_quad + 1; } }