~ubuntu-branches/ubuntu/precise/asm3/precise

« back to all changes in this revision

Viewing changes to src/org/objectweb/asm/Label.java

  • Committer: Package Import Robot
  • Author(s): Torsten Werner
  • Date: 2011-09-12 13:50:38 UTC
  • mfrom: (3.2.5 sid)
  • Revision ID: package-import@ubuntu.com-20110912135038-1g97tsp2uopphgm7
Tags: 3.3.2-1
* Team upload.
* New upstream release.
* Change debian/watch to point to upstream's SVN repository. Add
  debian/orig-tar.sh.
* Remove all prebuilt jar files from orig tarball.
* Install asm-debug-all.jar.
* Do no longer install symlinks from asm3-all.jar to the individual jars.
  Install the real files instead.
* Use upstream provided pom files instead of shipping them in the debian
  directory.

Show diffs side-by-side

added added

removed removed

Lines of Context:
96
96
    static final int SUBROUTINE = 512;
97
97
 
98
98
    /**
99
 
     * Indicates if this subroutine basic block has been visited.
 
99
     * Indicates if this subroutine basic block has been visited by a 
 
100
     * visitSubroutine(null, ...) call.
100
101
     */
101
102
    static final int VISITED = 1024;
102
103
 
103
104
    /**
 
105
     * Indicates if this subroutine basic block has been visited by a
 
106
     * visitSubroutine(!null, ...) call.
 
107
     */
 
108
    static final int VISITED2 = 2048;
 
109
 
 
110
    /**
104
111
     * Field used to associate user information to a label. Warning: this field
105
112
     * is used by the ASM tree package. In order to use it with the ASM tree
106
113
     * package you must override the {@link 
443
450
     *         subroutine.
444
451
     */
445
452
    boolean inSameSubroutine(final Label block) {
 
453
        if ((status & VISITED) == 0 || (block.status & VISITED) == 0) {
 
454
            return false;
 
455
        }
446
456
        for (int i = 0; i < srcAndRefPositions.length; ++i) {
447
457
            if ((srcAndRefPositions[i] & block.srcAndRefPositions[i]) != 0) {
448
458
                return true;
489
499
            l.next = null;
490
500
            
491
501
            if (JSR != null) {
492
 
                if ((l.status & VISITED) != 0) {
 
502
                if ((l.status & VISITED2) != 0) {
493
503
                    continue;
494
504
                }
495
 
                l.status |= VISITED;
 
505
                l.status |= VISITED2;
496
506
                // adds JSR to the successors of l, if it is a RET block
497
507
                if ((l.status & RET) != 0) {
498
508
                    if (!l.inSameSubroutine(JSR)) {