From f5ee91844f462e8051f71bbaf5ad199bffb65b71 Mon Sep 17 00:00:00 2001 From: tama3 Date: Thu, 27 Nov 2008 09:54:00 +0000 Subject: [PATCH] initial version (daily commit), not work yet git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/stigmata/plugins/trunk@323 acee48c3-7b26-0410-bdac-b3d0e5314bbc --- wsp/pom.xml | 23 ++ .../stigmata/birthmarks/wsp/LabelOpcode.java | 27 +++ .../stigmata/birthmarks/wsp/Opcode.java | 95 ++++++++ .../wsp/OpcodeExtractionFinishListener.java | 7 + .../wsp/OpcodeExtractionMethodVisitor.java | 171 ++++++++++++++ .../stigmata/birthmarks/wsp/OpcodeManager.java | 61 +++++ .../wsp/StackPatternBasedBirthmarkComparator.java | 27 +++ .../wsp/StackPatternBasedBirthmarkExtractor.java | 104 +++++++++ .../wsp/StackPatternBasedBirthmarkService.java | 52 +++++ wsp/src/main/resources/META-INF/bytecode.def | 256 +++++++++++++++++++++ 10 files changed, 823 insertions(+) create mode 100644 wsp/pom.xml create mode 100644 wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/LabelOpcode.java create mode 100644 wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/Opcode.java create mode 100644 wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/OpcodeExtractionFinishListener.java create mode 100644 wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/OpcodeExtractionMethodVisitor.java create mode 100644 wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/OpcodeManager.java create mode 100644 wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/StackPatternBasedBirthmarkComparator.java create mode 100644 wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/StackPatternBasedBirthmarkExtractor.java create mode 100644 wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/StackPatternBasedBirthmarkService.java create mode 100644 wsp/src/main/resources/META-INF/bytecode.def diff --git a/wsp/pom.xml b/wsp/pom.xml new file mode 100644 index 0000000..48846ee --- /dev/null +++ b/wsp/pom.xml @@ -0,0 +1,23 @@ + + + plugins + jp.sourceforge.stigmata + 1.0 + + + 4.0.0 + jp.sourceforge.stigmata.plugins + wsp + wsp + 1.0.0-SNAPSHOT + http://maven.apache.org + + + + jp.sourceforge + stigmata + 2.0.0-SNAPSHOT + compile + + + diff --git a/wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/LabelOpcode.java b/wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/LabelOpcode.java new file mode 100644 index 0000000..8eecb4b --- /dev/null +++ b/wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/LabelOpcode.java @@ -0,0 +1,27 @@ +package jp.sourceforge.stigmata.birthmarks.wsp; + +/* + * $Id$ + */ + +import org.objectweb.asm.Label; + +/** + * + * @author Haruaki Tamada + * @version $Revision$ + */ +public class LabelOpcode extends Opcode{ + private static final long serialVersionUID = -346783431316464L; + + private Label label; + + public LabelOpcode(Label label){ + super(-1, "targeter", 0, 0, Category.TARGETER); + this.label = label; + } + + public Label getLabel(){ + return label; + } +} diff --git a/wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/Opcode.java b/wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/Opcode.java new file mode 100644 index 0000000..d167fb4 --- /dev/null +++ b/wsp/src/main/java/jp/sourceforge/stigmata/birthmarks/wsp/Opcode.java @@ -0,0 +1,95 @@ +package jp.sourceforge.stigmata.birthmarks.wsp; + +/* + * $Id$ + */ + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + +import org.objectweb.asm.Label; + +/** + * + * @author Haruaki Tamada + * @version $Revision$ + */ +public class Opcode implements Serializable{ + private static final long serialVersionUID = -2349834745416345564L; + + public static enum Category{ + NORMAL, BRANCH, OBJECT, INVOKE, TARGETER, + }; + private int opcode; + private String name; + private int argumentCount; + private int act; + private Category category; + private List