[jruby-joni] 87/194: devirtualize getType()

Hideki Yamane henrich at moszumanska.debian.org
Thu Feb 1 12:04:30 UTC 2018


This is an automated email from the git hooks/post-receive script.

henrich pushed a commit to branch debian/sid
in repository jruby-joni.

commit 69d01f76518dd004ae1780534523601df7fb683d
Author: Marcin Mielzynski <lopx at gazeta.pl>
Date:   Tue Jan 2 19:45:57 2018 +0100

    devirtualize getType()
---
 src/org/joni/ast/AnchorNode.java     |  6 +-----
 src/org/joni/ast/AnyCharNode.java    |  7 ++-----
 src/org/joni/ast/BackRefNode.java    |  6 +-----
 src/org/joni/ast/CClassNode.java     |  9 +++------
 src/org/joni/ast/CTypeNode.java      |  6 +-----
 src/org/joni/ast/CallNode.java       |  6 +-----
 src/org/joni/ast/ConsAltNode.java    |  9 +--------
 src/org/joni/ast/EncloseNode.java    |  6 +-----
 src/org/joni/ast/Node.java           | 10 ++++++++--
 src/org/joni/ast/QuantifierNode.java |  6 +-----
 src/org/joni/ast/StateNode.java      |  4 ++++
 src/org/joni/ast/StringNode.java     |  7 ++-----
 12 files changed, 26 insertions(+), 56 deletions(-)

diff --git a/src/org/joni/ast/AnchorNode.java b/src/org/joni/ast/AnchorNode.java
index 8651df7..205091e 100644
--- a/src/org/joni/ast/AnchorNode.java
+++ b/src/org/joni/ast/AnchorNode.java
@@ -28,6 +28,7 @@ public final class AnchorNode extends Node {
     public int charLength;
 
     public AnchorNode(int type, boolean asciiRange) {
+        super(ANCHOR);
         this.type = type;
         charLength = -1;
         this.asciiRange = asciiRange;
@@ -38,11 +39,6 @@ public final class AnchorNode extends Node {
     }
 
     @Override
-    public int getType() {
-        return ANCHOR;
-    }
-
-    @Override
     protected void setChild(Node newChild) {
         target = newChild;
     }
diff --git a/src/org/joni/ast/AnyCharNode.java b/src/org/joni/ast/AnyCharNode.java
index 5b4f9b6..33f43c8 100644
--- a/src/org/joni/ast/AnyCharNode.java
+++ b/src/org/joni/ast/AnyCharNode.java
@@ -20,11 +20,8 @@
 package org.joni.ast;
 
 public final class AnyCharNode extends Node {
-    public AnyCharNode(){}
-
-    @Override
-    public int getType() {
-        return CANY;
+    public AnyCharNode(){
+        super(CANY);
     }
 
     @Override
diff --git a/src/org/joni/ast/BackRefNode.java b/src/org/joni/ast/BackRefNode.java
index b434419..76c89a3 100644
--- a/src/org/joni/ast/BackRefNode.java
+++ b/src/org/joni/ast/BackRefNode.java
@@ -30,6 +30,7 @@ public final class BackRefNode extends StateNode {
     public int nestLevel;
 
     public BackRefNode(int backNum, int[]backRefs, boolean byName, ScanEnvironment env) {
+        super(BREF);
         this.backNum = backNum;
         if (byName) setNameRef();
 
@@ -68,11 +69,6 @@ public final class BackRefNode extends StateNode {
     }
 
     @Override
-    public int getType() {
-        return BREF;
-    }
-
-    @Override
     public String getName() {
         return "Back Ref";
     }
diff --git a/src/org/joni/ast/CClassNode.java b/src/org/joni/ast/CClassNode.java
index 6930a15..ab18b2e 100644
--- a/src/org/joni/ast/CClassNode.java
+++ b/src/org/joni/ast/CClassNode.java
@@ -39,7 +39,9 @@ public final class CClassNode extends Node {
     public CodeRangeBuffer mbuf;            /* multi-byte info or NULL */
 
     // node_new_cclass
-    public CClassNode() {}
+    public CClassNode() {
+        super(CCLASS);
+    }
 
     public void clear() {
         bs.clear();
@@ -48,11 +50,6 @@ public final class CClassNode extends Node {
     }
 
     @Override
-    public int getType() {
-        return CCLASS;
-    }
-
-    @Override
     public String getName() {
         return "Character Class";
     }
diff --git a/src/org/joni/ast/CTypeNode.java b/src/org/joni/ast/CTypeNode.java
index fec4bf4..fd14de4 100644
--- a/src/org/joni/ast/CTypeNode.java
+++ b/src/org/joni/ast/CTypeNode.java
@@ -25,17 +25,13 @@ public final class CTypeNode extends Node {
     public final boolean asciiRange;
 
     public CTypeNode(int type, boolean not, boolean asciiRange) {
+        super(CTYPE);
         this.ctype= type;
         this.not = not;
         this.asciiRange = asciiRange;
     }
 
     @Override
-    public int getType() {
-        return CTYPE;
-    }
-
-    @Override
     public String getName() {
         return "Character Type";
     }
diff --git a/src/org/joni/ast/CallNode.java b/src/org/joni/ast/CallNode.java
index eeb18ab..19ffc80 100644
--- a/src/org/joni/ast/CallNode.java
+++ b/src/org/joni/ast/CallNode.java
@@ -34,6 +34,7 @@ public final class CallNode extends StateNode {
     public UnsetAddrList unsetAddrList;
 
     public CallNode(byte[]name, int nameP, int nameEnd, int gnum) {
+        super(CALL);
         this.name = name;
         this.nameP = nameP;
         this.nameEnd = nameEnd;
@@ -41,11 +42,6 @@ public final class CallNode extends StateNode {
     }
 
     @Override
-    public int getType() {
-        return CALL;
-    }
-
-    @Override
     protected void setChild(Node newChild) {
         target = newChild;
     }
diff --git a/src/org/joni/ast/ConsAltNode.java b/src/org/joni/ast/ConsAltNode.java
index 4e4d0e8..cb39146 100644
--- a/src/org/joni/ast/ConsAltNode.java
+++ b/src/org/joni/ast/ConsAltNode.java
@@ -28,15 +28,13 @@ import org.joni.exception.InternalException;
 public final class ConsAltNode extends Node {
     public Node car;
     public ConsAltNode cdr;
-    private int type;           // List or Alt
 
     private ConsAltNode(Node car, ConsAltNode cdr, int type) {
+        super(type);
         this.car = car;
         if (car != null) car.parent = this;
         this.cdr = cdr;
         if (cdr != null) cdr.parent = this;
-
-        this.type = type;
     }
 
     public static ConsAltNode newAltNode(Node left, ConsAltNode right) {
@@ -68,11 +66,6 @@ public final class ConsAltNode extends Node {
     }
 
     @Override
-    public int getType() {
-        return type;
-    }
-
-    @Override
     protected void setChild(Node newChild) {
         car = newChild;
     }
diff --git a/src/org/joni/ast/EncloseNode.java b/src/org/joni/ast/EncloseNode.java
index d5c5ea3..17646ac 100644
--- a/src/org/joni/ast/EncloseNode.java
+++ b/src/org/joni/ast/EncloseNode.java
@@ -37,6 +37,7 @@ public final class EncloseNode extends StateNode implements EncloseType {
 
     // node_new_enclose / onig_node_new_enclose
     public EncloseNode(int type) {
+        super(ENCLOSE);
         this.type = type;
         callAddr = -1;
     }
@@ -55,11 +56,6 @@ public final class EncloseNode extends StateNode implements EncloseType {
     }
 
     @Override
-    public int getType() {
-        return ENCLOSE;
-    }
-
-    @Override
     protected void setChild(Node newChild) {
         target = newChild;
     }
diff --git a/src/org/joni/ast/Node.java b/src/org/joni/ast/Node.java
index 3644b15..1d727f5 100644
--- a/src/org/joni/ast/Node.java
+++ b/src/org/joni/ast/Node.java
@@ -21,14 +21,20 @@ package org.joni.ast;
 
 import java.util.Set;
 
-import org.joni.Config;
 import org.joni.WarnCallback;
 import org.joni.constants.NodeType;
 
 public abstract class Node implements NodeType {
     public Node parent;
+    protected int type;
 
-    public abstract int getType();
+    Node(int type) {
+        this.type = type;
+    }
+
+    public final int getType() {
+        return type;
+    }
 
     public final int getType2Bit() {
         return 1 << getType();
diff --git a/src/org/joni/ast/QuantifierNode.java b/src/org/joni/ast/QuantifierNode.java
index 3074c74..78fc51e 100644
--- a/src/org/joni/ast/QuantifierNode.java
+++ b/src/org/joni/ast/QuantifierNode.java
@@ -41,6 +41,7 @@ public final class QuantifierNode extends StateNode {
     public int  combExpCheckNum;        /* 1,2,3...: check,  0: no check  */
 
     public QuantifierNode(int lower, int upper, boolean byNumber) {
+        super(QTFR);
         this.lower = lower;
         this.upper = upper;
         greedy = true;
@@ -50,11 +51,6 @@ public final class QuantifierNode extends StateNode {
     }
 
     @Override
-    public int getType() {
-        return QTFR;
-    }
-
-    @Override
     protected void setChild(Node newChild) {
         target = newChild;
     }
diff --git a/src/org/joni/ast/StateNode.java b/src/org/joni/ast/StateNode.java
index be25bec..6642b75 100644
--- a/src/org/joni/ast/StateNode.java
+++ b/src/org/joni/ast/StateNode.java
@@ -24,6 +24,10 @@ import org.joni.constants.NodeStatus;
 public abstract class StateNode extends Node implements NodeStatus {
     protected int state;
 
+    StateNode(int type) {
+        super(type);
+    }
+
     public boolean isMinFixed() {
         return (state & NST_MIN_FIXED) != 0;
     }
diff --git a/src/org/joni/ast/StringNode.java b/src/org/joni/ast/StringNode.java
index 9a57f72..5db44b5 100644
--- a/src/org/joni/ast/StringNode.java
+++ b/src/org/joni/ast/StringNode.java
@@ -35,10 +35,12 @@ public final class StringNode extends Node implements StringType {
     public int flag;
 
     public StringNode() {
+        super(STR);
         this.bytes = new byte[NODE_STR_BUF_SIZE];
     }
 
     public StringNode(byte[]bytes, int p, int end) {
+        super(STR);
         this.bytes = bytes;
         this.p = p;
         this.end = end;
@@ -79,11 +81,6 @@ public final class StringNode extends Node implements StringType {
     }
 
     @Override
-    public int getType() {
-        return STR;
-    }
-
-    @Override
     public String getName() {
         return "String";
     }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jruby-joni.git



More information about the pkg-java-commits mailing list