Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8166407

JShell: completion very slow after script

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: P3 P3
    • 9
    • 9
    • tools
    • None

      After this script completion takes minutes --

      new JFrame@i
      new JFrame(“Demo”)@v
      JFrame frame = new JFrame(“Demo”)

      int w = 300
      int h = 200
      fr|ame.setSi|ze( w+4 , h+4 )
      fr|ame.setV|isible(true)

      frame.getGr|aphics()@v
      java.awt.Graphics g = frame.getGraphics()

      g.drawRect(||0,0,w,h)

      g.setCo|lor(Color@i
      g.setColor(Color.Y|ELLOW)

      ^^^ g.drawRect(0,0,w,h)

      g.fillRect(0,0,w,h)

      void updateDisplay() { updateContent(); show(); }
      updateDisplay()
      // error

      ^^ void show() { g.fillRect(0,0,w,h); }

      void updateContent() { g.setColor( nextColor() ); }

      ^^^ updateDisplay()
      // error

      Color nextColor() { return g.getCo|lor().d|arker(); }

      ^ updateDisplay()

      for (int i = 0; i < 20; ++i) { updatD|isplay(); Thread.sl|eep(250); }
      ^ } ^A
      void doit() { for (int i = 0; i < 20; ++i) { updatD|isplay(); Thread.sleep(250); }}

      doit()
      doit()

      ^^ void doit() { init(); for (int i = 0; i < 20; ++i) { updatDisplay(); Thread.sleep(250); }}

      ^RYEL ;} ^Avoid init() {

      ^^ doit()

      ——————

      ImageIO@i
      ImageIO.read(new File("slides/funny-monkey.jpg”))@v
      java.awt.image.BufferedImage im = ImageIO.read(new File("slides/funny-monkey.jpg"))

      g.drawImage(||
      g.drawImage(im, 0, 0, null)

      im.getRGB(||0, 0, w, h, null, 0, w)@v
      int[] before = im.getRGB(0, 0, w, h, null, 0, w)

      int tweakRGB(int rgb) { return tweakColor( new Color(rgb) ).getRGB(); }
      Color tweakColor(Color c) { return c.darker(); }

      import static java.u|til.A|rrays.*

      stream(before).map(rgb -> tweakRGB(rgb)).toArray()@v
      int[] after = stream(before).map(rgb -> tweakRGB(rgb)).toArray()
      im.setRGB(0, 0, w, h, after, 0, w)

      ^R drawIm ;} ^A void show() {

      /edit
      void init() {
        im = ImageIO.read(new File("slides/funny-monkey.jpg”));
      }
      void updateContent() {
        int[] before = im.getRGB(0, 0, w, h, null, 0, w);
        int[] after = stream(before).map(rgb -> tweakRGB(rgb)).toArray();
        im.setRGB(0, 0, w, h, after, 0, w);
      }

      doit()

      Random rand = new Random();
      int r(int v) {
        int ri = (int) (rand.nextDouble() * 30) - 7;
        return (v + ri) & 255;
      }
      Color tweakColor(Color c) { return new Color(r(c.getRed()), r(c.getGreen()), r(c.getBlue())); }

      doit()

      ^R doit 50

            jlahoda Jan Lahoda
            rfield Robert Field (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: