Package clojure.asm

Examples of clojure.asm.Label


    @Override
    public void visitTypeInsn(final int opcode, final String type) {
        if (opcode == Opcodes.NEW) {
            if (labels == null) {
                Label l = new Label();
                labels = new ArrayList<Label>(3);
                labels.add(l);
                if (mv != null) {
                    mv.visitLabel(l);
                }
View Full Code Here


     * Creates a new {@link Label}.
     *
     * @return a new {@link Label}.
     */
    public Label newLabel() {
        return new Label();
    }
View Full Code Here

     * Marks the current code position with a new label.
     *
     * @return the label that was created to mark the current code position.
     */
    public Label mark() {
        Label label = new Label();
        mv.visitLabel(label);
        return label;
    }
View Full Code Here

            if (keys[i] < keys[i - 1]) {
                throw new IllegalArgumentException(
                        "keys must be sorted ascending");
            }
        }
        Label def = newLabel();
        Label end = newLabel();
        if (keys.length > 0) {
            int len = keys.length;
            int min = keys[0];
            int max = keys[len - 1];
            int range = max - min + 1;
            if (useTable) {
                Label[] labels = new Label[range];
                Arrays.fill(labels, def);
                for (int i = 0; i < len; ++i) {
                    labels[keys[i] - min] = newLabel();
                }
                mv.visitTableSwitchInsn(min, max, def, labels);
                for (int i = 0; i < range; ++i) {
                    Label label = labels[i];
                    if (label != def) {
                        mark(label);
                        generator.generateCase(i + min, end);
                    }
                }
View Full Code Here

public void visitTypeInsn(final int opcode, final String desc){
  if(opcode == Opcodes.NEW)
    {
    if(labels == null)
      {
      Label l = new Label();
      labels = new ArrayList(3);
      labels.add(l);
      if(mv != null)
        {
        mv.visitLabel(l);
View Full Code Here

* Creates a new {@link Label}.
*
* @return a new {@link Label}.
*/
public Label newLabel(){
  return new Label();
}
View Full Code Here

* Marks the current code position with a new label.
*
* @return the label that was created to mark the current code position.
*/
public Label mark(){
  Label label = new Label();
  mv.visitLabel(label);
  return label;
}
View Full Code Here

    if(keys[i] < keys[i - 1])
      {
      throw new IllegalArgumentException("keys must be sorted ascending");
      }
    }
  Label def = newLabel();
  Label end = newLabel();
  if(keys.length > 0)
    {
    int len = keys.length;
    int min = keys[0];
    int max = keys[len - 1];
    int range = max - min + 1;
    if(useTable)
      {
      Label[] labels = new Label[range];
      Arrays.fill(labels, def);
      for(int i = 0; i < len; ++i)
        {
        labels[keys[i] - min] = newLabel();
        }
      mv.visitTableSwitchInsn(min, max, def, labels);
      for(int i = 0; i < range; ++i)
        {
        Label label = labels[i];
        if(label != def)
          {
          mark(label);
          generator.generateCase(i + min, end);
          }
View Full Code Here

TOP

Related Classes of clojure.asm.Label

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.