Skip to content
Snippets Groups Projects
Commit 95dc0fd1 authored by Fabian Vu's avatar Fabian Vu
Browse files

Fix an error in C++ template

parent c1dea622
No related branches found
No related tags found
No related merge requests found
Pipeline #144929 failed
...@@ -1122,13 +1122,12 @@ model_check_transition(machine, hasParameters, tupleType, transitionIdentifier, ...@@ -1122,13 +1122,12 @@ model_check_transition(machine, hasParameters, tupleType, transitionIdentifier,
<if(hasParameters)> <if(hasParameters)>
<if(isCaching)> <if(isCaching)>
<machine>::_ProjectionRead_<evalTransitions> read_<evalTransitions>_state = state._projected_state_for_<evalTransitions>(); <machine>::_ProjectionRead_<evalTransitions> read_<evalTransitions>_state = state._projected_state_for_<evalTransitions>();
{
std::unique_lock\<std::mutex> _ProjectionRead_<evalTransitions>_lock(_ProjectionRead_<evalTransitions>_mutex);
auto <transitionIdentifier>_ptr = _OpCache<evalTransitions>.find(read_<evalTransitions>_state); auto <transitionIdentifier>_ptr = _OpCache<evalTransitions>.find(read_<evalTransitions>_state);
if(<transitionIdentifier>_ptr == _OpCache<evalTransitions>.end()) { if(<transitionIdentifier>_ptr == _OpCache<evalTransitions>.end()) {
BSet\<<tupleType>\> <transitionIdentifier> = state.<evalTransitions>(); BSet\<<tupleType>\> <transitionIdentifier> = state.<evalTransitions>();
{
std::unique_lock\<std::mutex> _ProjectionRead_<evalTransitions>_lock(_ProjectionRead_<evalTransitions>_mutex);
_OpCache<evalTransitions>.insert({read_<evalTransitions>_state, <transitionIdentifier>}); _OpCache<evalTransitions>.insert({read_<evalTransitions>_state, <transitionIdentifier>});
}
for(const <tupleType>& param : <transitionIdentifier>) { for(const <tupleType>& param : <transitionIdentifier>) {
<execTransitions> <execTransitions>
} }
...@@ -1138,6 +1137,7 @@ if(<transitionIdentifier>_ptr == _OpCache<evalTransitions>.end()) { ...@@ -1138,6 +1137,7 @@ if(<transitionIdentifier>_ptr == _OpCache<evalTransitions>.end()) {
<execTransitions> <execTransitions>
} }
} }
}
<else> <else>
BSet\<<tupleType>\> <transitionIdentifier> = state.<evalTransitions>(); BSet\<<tupleType>\> <transitionIdentifier> = state.<evalTransitions>();
for(const <tupleType>& param : <transitionIdentifier>) { for(const <tupleType>& param : <transitionIdentifier>) {
...@@ -1148,16 +1148,16 @@ for(const <tupleType>& param : <transitionIdentifier>) { ...@@ -1148,16 +1148,16 @@ for(const <tupleType>& param : <transitionIdentifier>) {
<if(isCaching)> <if(isCaching)>
<machine>::_ProjectionRead_<evalTransitions> read_<evalTransitions>_state = state._projected_state_for_<evalTransitions>(); <machine>::_ProjectionRead_<evalTransitions> read_<evalTransitions>_state = state._projected_state_for_<evalTransitions>();
bool <transitionIdentifier> = false; bool <transitionIdentifier> = false;
{
std::unique_lock\<std::mutex> _ProjectionRead_<evalTransitions>_lock(_ProjectionRead_<evalTransitions>_mutex);
auto _obj_<transitionIdentifier>_ptr = _OpCache<evalTransitions>.find(read_<evalTransitions>_state); auto _obj_<transitionIdentifier>_ptr = _OpCache<evalTransitions>.find(read_<evalTransitions>_state);
if(_obj_<transitionIdentifier>_ptr == _OpCache<evalTransitions>.end()) { if(_obj_<transitionIdentifier>_ptr == _OpCache<evalTransitions>.end()) {
<transitionIdentifier> = state.<evalTransitions>(); <transitionIdentifier> = state.<evalTransitions>();
{
std::unique_lock\<std::mutex> _ProjectionRead_<evalTransitions>_lock(_ProjectionRead_<evalTransitions>_mutex);
_OpCache<evalTransitions>.insert({read_<evalTransitions>_state, <transitionIdentifier>}); _OpCache<evalTransitions>.insert({read_<evalTransitions>_state, <transitionIdentifier>});
}
} else { } else {
<transitionIdentifier> = _obj_<transitionIdentifier>_ptr->second; <transitionIdentifier> = _obj_<transitionIdentifier>_ptr->second;
} }
}
if(<transitionIdentifier>) { if(<transitionIdentifier>) {
<execTransitions> <execTransitions>
} }
...@@ -1477,20 +1477,16 @@ model_check_transition_body(machine, operation, hasParameters, readParameters, p ...@@ -1477,20 +1477,16 @@ model_check_transition_body(machine, operation, hasParameters, readParameters, p
<machine> copiedState = state._copy(); <machine> copiedState = state._copy();
<if(isCaching)> <if(isCaching)>
<machine>::_ProjectionRead_<operation> readState = state._projected_state_for_<operation>(); <machine>::_ProjectionRead_<operation> readState = state._projected_state_for_<operation>();
auto _OpCache_with_parameter_<operation>_ptr = _OpCache_<operation>.find(<transitionEval>);
if(_OpCache_with_parameter_<operation>_ptr == _OpCache_<operation>.end()) {
{ {
std::unique_lock\<std::mutex> _ProjectionRead_<operation>_lock(_ProjectionRead_<operation>_mutex); std::unique_lock\<std::mutex> _ProjectionRead_<operation>_lock(_ProjectionRead_<operation>_mutex);
auto _OpCache_with_parameter_<operation>_ptr = _OpCache_<operation>.find(<transitionEval>);
if(_OpCache_with_parameter_<operation>_ptr == _OpCache_<operation>.end()) {
copiedState.<operation>(<parameters; separator=", ">); copiedState.<operation>(<parameters; separator=", ">);
<machine>::_ProjectionWrite_<operation> writeState = copiedState._update_for_<operation>(); <machine>::_ProjectionWrite_<operation> writeState = copiedState._update_for_<operation>();
std::unordered_map\<<machine>::_ProjectionRead_<operation>, <machine>::_ProjectionWrite_<operation>, <machine>::_ProjectionRead_<operation>::Hash, <machine>::_ProjectionRead_<operation>::HashEqual\> _OpCache_with_parameter_<operation> = std::unordered_map\<<machine>::_ProjectionRead_<operation>, <machine>::_ProjectionWrite_<operation>, <machine>::_ProjectionRead_<operation>::Hash, <machine>::_ProjectionRead_<operation>::HashEqual\>(); std::unordered_map\<<machine>::_ProjectionRead_<operation>, <machine>::_ProjectionWrite_<operation>, <machine>::_ProjectionRead_<operation>::Hash, <machine>::_ProjectionRead_<operation>::HashEqual\> _OpCache_with_parameter_<operation> = std::unordered_map\<<machine>::_ProjectionRead_<operation>, <machine>::_ProjectionWrite_<operation>, <machine>::_ProjectionRead_<operation>::Hash, <machine>::_ProjectionRead_<operation>::HashEqual\>();
_OpCache_with_parameter_<operation>.insert({readState, writeState}); _OpCache_with_parameter_<operation>.insert({readState, writeState});
_OpCache_<operation>.insert({<transitionEval>, _OpCache_with_parameter_<operation>}); _OpCache_<operation>.insert({<transitionEval>, _OpCache_with_parameter_<operation>});
}
} else { } else {
{
std::unique_lock\<std::mutex> _ProjectionRead_<operation>_lock(_ProjectionRead_<operation>_mutex);
std::unordered_map\<<machine>::_ProjectionRead_<operation>, <machine>::_ProjectionWrite_<operation>, <machine>::_ProjectionRead_<operation>::Hash, <machine>::_ProjectionRead_<operation>::HashEqual\> _OpCache_with_parameter_<operation> = _OpCache_with_parameter_<operation>_ptr->second; std::unordered_map\<<machine>::_ProjectionRead_<operation>, <machine>::_ProjectionWrite_<operation>, <machine>::_ProjectionRead_<operation>::Hash, <machine>::_ProjectionRead_<operation>::HashEqual\> _OpCache_with_parameter_<operation> = _OpCache_with_parameter_<operation>_ptr->second;
auto writeState_ptr = _OpCache_with_parameter_<operation>.find(readState); auto writeState_ptr = _OpCache_with_parameter_<operation>.find(readState);
if(writeState_ptr != _OpCache_with_parameter_<operation>.end()) { if(writeState_ptr != _OpCache_with_parameter_<operation>.end()) {
...@@ -1503,7 +1499,6 @@ if(_OpCache_with_parameter_<operation>_ptr == _OpCache_<operation>.end()) { ...@@ -1503,7 +1499,6 @@ if(_OpCache_with_parameter_<operation>_ptr == _OpCache_<operation>.end()) {
} }
} }
} }
<else> <else>
copiedState.<operation>(<parameters; separator=", ">); copiedState.<operation>(<parameters; separator=", ">);
<endif> <endif>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment