From 39b19c5baedbca2c61841756b3acc5815c409e8b Mon Sep 17 00:00:00 2001
From: michel <michel@ac1d8469-bf42-47a9-8791-bf33cf982152>
Date: Mon, 25 Aug 2008 19:57:21 +0000
Subject: [PATCH] add an upper bound to loops in
 VariableTable::computeDynJacobianCols()

git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1997 ac1d8469-bf42-47a9-8791-bf33cf982152
---
 VariableTable.cc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/VariableTable.cc b/VariableTable.cc
index f994e9f6..e05b3355 100644
--- a/VariableTable.cc
+++ b/VariableTable.cc
@@ -104,19 +104,19 @@ VariableTable::computeDynJacobianCols() throw (DynJacobianColsAlreadyComputedExc
 
   // Assign the first columns to endogenous, using the lexicographic order over (lag, symbol_id) implemented in variable_table map
   int sorted_id = 0;
-  while(it->first.first.first == eEndogenous)
+  while(it->first.first.first == eEndogenous && it != variable_table.end())
     {
       dyn_jacobian_cols_table[it->second] = sorted_id++;
       it++;
     }
 
   // Assign subsequent columns to exogenous and then exogenous deterministic, using an offset + symbol_id
-  while(it->first.first.first == eExogenous)
+  while(it->first.first.first == eExogenous && it != variable_table.end())
     {
       dyn_jacobian_cols_table[it->second] = var_endo_nbr + it->first.second;
       it++;
     }
-  while(it->first.first.first == eExogenousDet)
+  while(it->first.first.first == eExogenousDet && it != variable_table.end())
     {
       dyn_jacobian_cols_table[it->second] = var_endo_nbr + symbol_table.exo_nbr + it->first.second;
       it++;
-- 
GitLab