durable_rules 2.0.19 → 2.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/src/rules/state.c +22 -2
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4f68e8be526e46e47b904f1b0a0af0c00ffa58f5
4
- data.tar.gz: 31f9916994a145c2c27b891ce93f9d7795b5c22b
3
+ metadata.gz: e31ed367e85b98094b59ee77e36313d16f55050f
4
+ data.tar.gz: 1d569b73e027e8078d4f46d9d464e57ae0a3213e
5
5
  SHA512:
6
- metadata.gz: efd950c601e441e71505e9c43935f112b1a223495d487fff180738356ad3c79431a1aa316df59663d13178c5f6e4aaf46f7e0ab4d7cc6f41c9d1c8a8a1855815
7
- data.tar.gz: cdb9502e03383280a6ee9ef39ea105f5cd75ae1050744f5b0111ab73144a08e56dc79fdb094046013b9be2f4c16c4cbcf75a838afc7f75b6cc16fe571d15afbc
6
+ metadata.gz: 0e9916597fe2a07f54946da6ceeb6dec73d0c1d6ab995b6bf4d8c960c4168ebe320e0419d03e55cda12d7b764bdc8ddf2bce9f62de38a32a7c4a7eef0e223281
7
+ data.tar.gz: e53b6782a8e0d6692890e62ddc500d932ebdc416635bfd07d2538b27ef15944eb8b34a9362d0c3500efa3169db1f3f688bc2a03ba4cd8e755523053b49809b63
data/src/rules/state.c CHANGED
@@ -587,7 +587,6 @@ unsigned int createActionFrame(stateNode *state,
587
587
  leftFrameNode *oldNode,
588
588
  leftFrameNode **newNode,
589
589
  frameLocation *newLocation) {
590
-
591
590
  unsigned int newValueOffset;
592
591
  actionStateNode *actionNode = &state->actionState[reteNode->value.c.index];
593
592
  NEW(leftFrameNode,
@@ -676,6 +675,9 @@ unsigned int deleteMessage(void *tree,
676
675
  unsigned int messageNodeOffset) {
677
676
  messageNode *node = MESSAGE_NODE(state, messageNodeOffset);
678
677
  ruleset *rulesetTree = (ruleset*)tree;
678
+ if (mid == NULL) {
679
+ mid = (char*)node->jo.idBuffer;
680
+ }
679
681
  if (rulesetTree->deleteMessageCallback) {
680
682
  CHECK_RESULT(rulesetTree->deleteMessageCallback(rulesetTree->deleteMessageCallbackContext,
681
683
  &rulesetTree->stringPool[rulesetTree->nameOffset],
@@ -825,7 +827,7 @@ unsigned int getStateNode(void *tree,
825
827
 
826
828
  unsigned int createStateNode(void *tree,
827
829
  char *sid,
828
- stateNode **state) {
830
+ stateNode **state) {
829
831
  unsigned int sidHash = fnv1Hash32(sid, strlen(sid));
830
832
  unsigned int nodeOffset;
831
833
  ruleset *rulesetTree = (ruleset*)tree;
@@ -922,8 +924,19 @@ unsigned int createStateNode(void *tree,
922
924
  unsigned int deleteStateNode(void *tree,
923
925
  stateNode *node) {
924
926
  ruleset *rulesetTree = (ruleset*)tree;
927
+
925
928
  free(node->sid);
926
929
 
930
+ if (node->context.messages) {
931
+ free(node->context.messages);
932
+ node->context.messages = NULL;
933
+ }
934
+
935
+ if (node->context.stateFact) {
936
+ free(node->context.stateFact);
937
+ node->context.stateFact = NULL;
938
+ }
939
+
927
940
  for (unsigned int i = 0; i < rulesetTree->betaCount; ++i) {
928
941
  betaStateNode *betaNode = &node->betaState[i];
929
942
  free(betaNode->leftFramePool.content);
@@ -944,6 +957,13 @@ unsigned int deleteStateNode(void *tree,
944
957
  }
945
958
  free(node->actionState);
946
959
 
960
+ for (unsigned int i = 0; i < MAX_MESSAGE_INDEX_LENGTH * 2; ++i) {
961
+ if (node->messageIndex[i] != UNDEFINED_HASH_OFFSET) {
962
+ deleteMessage(tree, node, NULL, node->messageIndex[i]);
963
+ }
964
+ }
965
+ free(node->messagePool.content);
966
+
947
967
  DELETE(stateNode,
948
968
  rulesetTree->stateIndex,
949
969
  MAX_STATE_INDEX_LENGTH,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: durable_rules
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.19
4
+ version: 2.0.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jesus Ruiz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-24 00:00:00.000000000 Z
11
+ date: 2020-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake