From 97d87ac962d2fa5c5419a5ce45333f26900868f9 Mon Sep 17 00:00:00 2001 From: kayser-herold Date: Thu, 27 Jul 2006 21:48:12 +0000 Subject: [PATCH] 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 --- deal.II/deal.II/source/dofs/hp_dof_objects.cc | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) 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; } } -- 2.39.5