Preprocessor: fix crash when no computational task is required

issue#70
Sébastien Villemot 2011-06-22 11:34:25 +02:00
parent 53fe3fe8ed
commit 06f7d23e90
3 changed files with 4 additions and 2 deletions

View File

@ -2683,6 +2683,8 @@ DynamicModel::computingPass(bool jacobianExo, bool hessian, bool thirdDerivative
{
assert(jacobianExo || !(hessian || thirdDerivatives || paramsDerivatives));
initializeVariablesAndEquations();
// Prepare for derivation
computeDerivIDs();

View File

@ -358,7 +358,6 @@ ModFile::computingPass(bool no_tmp_terms)
dynamic_model.toStatic(static_model);
if (!no_static)
{
static_model.initializeVariablesAndEquations();
if (mod_file_struct.stoch_simul_present
|| mod_file_struct.estimation_present || mod_file_struct.osr_present
|| mod_file_struct.ramsey_policy_present || mod_file_struct.identification_present)
@ -371,7 +370,6 @@ ModFile::computingPass(bool no_tmp_terms)
|| mod_file_struct.estimation_present || mod_file_struct.osr_present
|| mod_file_struct.ramsey_policy_present || mod_file_struct.identification_present)
{
dynamic_model.initializeVariablesAndEquations();
if (mod_file_struct.simul_present)
dynamic_model.computingPass(true, false, false, false, global_eval_context, no_tmp_terms, block, use_dll, byte_code);
else

View File

@ -1065,6 +1065,8 @@ StaticModel::collect_first_order_derivatives_endogenous()
void
StaticModel::computingPass(const eval_context_t &eval_context, bool no_tmp_terms, bool hessian, bool block, bool bytecode)
{
initializeVariablesAndEquations();
// Compute derivatives w.r. to all endogenous, and possibly exogenous and exogenous deterministic
set<int> vars;