durable_rules 2.0.19 → 2.0.20
Sign up to get free protection for your applications and to get access to all the features.
- 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
|