@@ -1408,19 +1408,17 @@ createPackage(text *name, bool is_trans)
14081408
14091409 if (found )
14101410 {
1411+ TransObject * transObj = & package -> transObject ;
1412+
1413+ if (!isObjectChangedInCurrentTrans (transObj ))
1414+ createSavepoint (transObj , TRANS_PACKAGE );
1415+
14111416 if (!GetActualState (package )-> is_valid )
1412- /* Make package valid again */
14131417 {
14141418 HASH_SEQ_STATUS vstat ;
14151419 Variable * variable ;
1416- TransObject * transObj = & package -> transObject ;
1417-
1418- /* Make new history entry of package */
1419- if (!isObjectChangedInCurrentTrans (transObj ))
1420- createSavepoint (transObj , TRANS_PACKAGE );
14211420
14221421 GetActualState (package )-> is_valid = true;
1423-
14241422 /* Mark all transactional variables in package as removed */
14251423 if (package -> varHashTransact )
14261424 {
@@ -1448,14 +1446,14 @@ createPackage(text *name, bool is_trans)
14481446 package -> hctxRegular = NULL ;
14491447 package -> hctxTransact = NULL ;
14501448 initObjectHistory (& package -> transObject , TRANS_PACKAGE );
1451- /* Add to changes list */
1452- if (!isObjectChangedInCurrentTrans (& package -> transObject ))
1453- addToChangesStack (& package -> transObject , TRANS_PACKAGE );
14541449 }
14551450
14561451 /* Create corresponding HTAB if not exists */
14571452 if (!pack_htab (package , is_trans ))
14581453 makePackHTAB (package , is_trans );
1454+ /* Add to changes list */
1455+ if (!isObjectChangedInCurrentTrans (& package -> transObject ))
1456+ addToChangesStack (& package -> transObject , TRANS_PACKAGE );
14591457
14601458 return package ;
14611459}
0 commit comments