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.
- checksums.yaml +4 -4
- data/src/rules/state.c +22 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e31ed367e85b98094b59ee77e36313d16f55050f
|
4
|
+
data.tar.gz: 1d569b73e027e8078d4f46d9d464e57ae0a3213e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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-
|
11
|
+
date: 2020-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|