public static boolean allVariablesNextP(AllPurposeIterator self) {
    { int cursor = self.iteratorInteger;
      Symbol symbol = null;
      GlobalVariable variable = null;

      while (cursor < self.iteratorSecondInteger) {
        symbol = ((Symbol)((Stella.$SYMBOL_ARRAY$.theArray)[cursor]));
        if ((symbol != null) &&
            AllPurposeIterator.selectedMetaObjectP(self, ((Module)(symbol.homeContext)))) {
          variable = ((GlobalVariable)(Stella.$GLOBAL_VARIABLE_LOOKUP_TABLE$.lookup(symbol)));
          if ((variable != null) &&
              (AllPurposeIterator.selectedMetaObjectP(self, variable.homeModule()) &&
               ((self.iteratorFilterCode == null) ||
                ((Boolean)(edu.isi.stella.javalib.Native.funcall(self.iteratorFilterCode, null, new java.lang.Object [] {variable, self}))).booleanValue()))) {
            self.value = variable;
            self.iteratorInteger = cursor + 1;
            return (true);
          }
        }
        cursor = cursor + 1;
      }
      return (false);
    }
  }