durable_rules 2.0.21 → 2.0.22

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