durable_rules 2.0.21 → 2.0.22

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cc03b88548e96951b82c22fe1ddf28d275130f79
4
- data.tar.gz: da5f07e4f707e4aa68fa73077f023bb4dd046c97
3
+ metadata.gz: ea83e9efc9d1e06b799a9408e24dc95126cadcdc
4
+ data.tar.gz: 9334d4fb5bbe5c97d8e46cf00a624adcd782af86
5
5
  SHA512:
6
- metadata.gz: 4c204fd504883152da43e0f6586fea6ed1898b1200b0844b4e9d0e80cc2dcd261dd1e9f25d9627c79c8d3c709806d97743bf4b0fcaa561a1231167ed771793f0
7
- data.tar.gz: d698a703e5e87fe9d3e478ad8e416ebe2c2ac8f1fa038f2856c3ca0dc532db8555a63bc5b2cf6d25e98dadbdb6fbbd64bbba34fe09c7aef83c449b9256845ee1
6
+ metadata.gz: 9240234e76cf597c487320d53ec9ebe9ba9a7ba65a0f64a685de3eb2b037457a11eb89fd61eca7dc4135aa473ae86dc92aebea8eb941d504270c4de29416e974
7
+ data.tar.gz: 1056a380df74c2a30b266d33a09c6745bcd41b1b255e2f6a9628fb5c5d30db65c83606b45e7758d679f36a50026a9ea1ba98c94a308f51a323ace387ee3fd68e
data/src/rules/events.c CHANGED
@@ -1000,7 +1000,7 @@ static unsigned int handleDeleteMessage(ruleset *tree,
1000
1000
  stateNode *state,
1001
1001
  char *mid,
1002
1002
  unsigned int messageOffset) {
1003
- unsigned int result;
1003
+ unsigned int result = RULES_OK;
1004
1004
  unsigned int count = 0;
1005
1005
  unsigned int i = 1;
1006
1006
  messageNode *message = MESSAGE_NODE(state, messageOffset);
@@ -1340,15 +1340,22 @@ static unsigned int handleMatchFrames(ruleset *tree,
1340
1340
  }
1341
1341
  }
1342
1342
 
1343
- if(currentNode->value.b.gateType == GATE_OR && !currentNode->value.b.expressionSequence.length) {
1344
- return handleBetaFrame(tree,
1345
- state,
1346
- currentMessageOffset,
1347
- currentNode,
1348
- nextNode,
1349
- NULL,
1350
- NULL,
1351
- sideEffect);
1343
+ if(currentNode->value.b.gateType == GATE_OR) {
1344
+ if (currentNode->value.b.expressionSequence.length == 0 ||
1345
+ (currentNode->value.b.expressionSequence.length == 2 &&
1346
+ currentNode->value.b.expressionSequence.expressions[1].operator == OP_END &&
1347
+ (currentNode->value.b.expressionSequence.expressions[0].operator == OP_AND ||
1348
+ currentNode->value.b.expressionSequence.expressions[0].operator == OP_OR))) {
1349
+
1350
+ return handleBetaFrame(tree,
1351
+ state,
1352
+ currentMessageOffset,
1353
+ currentNode,
1354
+ nextNode,
1355
+ NULL,
1356
+ NULL,
1357
+ sideEffect);
1358
+ }
1352
1359
  }
1353
1360
 
1354
1361
  return RULES_OK;
data/src/rules/rete.h CHANGED
@@ -1,6 +1,6 @@
1
1
  #include "state.h"
2
2
 
3
- //#define _PRINT 1
3
+ // #define _PRINT 1
4
4
 
5
5
  #define OP_NOP 0
6
6
  #define OP_LT 0x01
data/src/rules/state.c CHANGED
@@ -780,7 +780,7 @@ unsigned int storeMessage(void *tree,
780
780
 
781
781
  ruleset *rulesetTree = (ruleset*)tree;
782
782
  if (sideEffect && rulesetTree->storeMessageCallback) {
783
- unsigned char actionType;
783
+ unsigned char actionType = ACTION_ASSERT_EVENT;
784
784
  switch (messageType) {
785
785
  case MESSAGE_TYPE_EVENT:
786
786
  actionType = ACTION_ASSERT_EVENT;
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.21
4
+ version: 2.0.22
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-03-15 00:00:00.000000000 Z
11
+ date: 2020-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake