Program: 30316
Project: 30316
Buggy source:
private void computeBbox(){
  float minX, minY, maxX, maxY;
  if (bbox != null && (bbox.getVertices() == null || bbox.getVertices().length != 8)) {
    bbox.setVertices(new float[8]);
  }
  if (currentSource == null || currentSource.skeleton == null) {
    if (bbox != null) {
      float[] verts=bbox.getVertices();
      verts[0]=-getWidth() / 2;
      verts[1]=0f;
      verts[2]=-getWidth() / 2;
      verts[3]=getHeight();
      verts[4]=getWidth() / 2;
      verts[5]=getHeight();
      verts[6]=getWidth() / 2;
      verts[7]=0f;
      bbox.dirty();
    }
    return;
  }
  currentSource.skeleton.setPosition(0,0);
  currentSource.skeleton.updateWorldTransform();
  bounds.update(currentSource.skeleton,true);
  if (bounds.getWidth() > 0 && bounds.getHeight() > 0) {
    width=bounds.getWidth();
    height=bounds.getHeight();
    minX=bounds.getMinX();
    minY=bounds.getMinY();
    maxX=bounds.getMaxX();
    maxY=bounds.getMaxY();
  }
 else {
    minX=Float.MAX_VALUE;
    minY=Float.MAX_VALUE;
    maxX=Float.MIN_VALUE;
    maxY=Float.MIN_VALUE;
    Array<Slot> slots=currentSource.skeleton.getSlots();
    for (int i=0, n=slots.size; i < n; i++) {
      Slot slot=slots.get(i);
      Attachment attachment=slot.getAttachment();
      if (attachment == null)       continue;
      if (!(attachment instanceof RegionAttachment))       continue;
      ((RegionAttachment)attachment).updateWorldVertices(slot,false);
      float[] vertices=((RegionAttachment)attachment).getWorldVertices();
      for (int ii=0, nn=vertices.length; ii < nn; ii+=5) {
        minX=Math.min(minX,vertices[ii]);
        minY=Math.min(minY,vertices[ii + 1]);
        maxX=Math.max(maxX,vertices[ii]);
        maxY=Math.max(maxY,vertices[ii + 1]);
      }
    }
    width=(maxX - minX);
    height=(maxY - minY);
    if (width <= 0 || height <= 0) {
      width=height=DEFAULT_DIM;
    }
  }
  if (bbox != null) {
    float[] verts=bbox.getVertices();
    verts[0]=minX;
    verts[1]=minY;
    verts[2]=minX;
    verts[3]=maxY;
    verts[4]=maxX;
    verts[5]=maxY;
    verts[6]=maxX;
    verts[7]=minY;
    bbox.dirty();
  }
}

Fixed version (ground truth):
private void computeBbox(){
  float minX, minY, maxX, maxY;
  if (bbox != null && (bbox.getVertices() == null || bbox.getVertices().length != 8)) {
    bbox.setVertices(new float[8]);
  }
  if (currentSource == null || currentSource.skeleton == null) {
    if (bbox != null) {
      float[] verts=bbox.getVertices();
      verts[0]=-getWidth() / 2;
      verts[1]=0f;
      verts[2]=-getWidth() / 2;
      verts[3]=getHeight();
      verts[4]=getWidth() / 2;
      verts[5]=getHeight();
      verts[6]=getWidth() / 2;
      verts[7]=0f;
      bbox.dirty();
    }
    return;
  }
  currentSource.skeleton.setPosition(0,0);
  currentSource.skeleton.updateWorldTransform();
  bounds.update(currentSource.skeleton,true);
  if (bounds.getWidth() > 0 && bounds.getHeight() > 0) {
    width=bounds.getWidth();
    height=bounds.getHeight();
    minX=bounds.getMinX();
    minY=bounds.getMinY();
    maxX=bounds.getMaxX();
    maxY=bounds.getMaxY();
  }
 else {
    minX=Float.MAX_VALUE;
    minY=Float.MAX_VALUE;
    maxX=Float.MIN_VALUE;
    maxY=Float.MIN_VALUE;
    Array<Slot> slots=currentSource.skeleton.getSlots();
    for (int i=0, n=slots.size; i < n; i++) {
      Slot slot=slots.get(i);
      Attachment attachment=slot.getAttachment();
      if (attachment == null)       continue;
      if (!(attachment instanceof RegionAttachment))       continue;
      ((RegionAttachment)attachment).updateWorldVertices(slot,false);
      float[] vertices=((RegionAttachment)attachment).getWorldVertices();
      for (int ii=0, nn=vertices.length; ii < nn; ii+=5) {
        minX=Math.min(minX,vertices[ii]);
        minY=Math.min(minY,vertices[ii + 1]);
        maxX=Math.max(maxX,vertices[ii]);
        maxY=Math.max(maxY,vertices[ii + 1]);
      }
    }
    width=(maxX - minX);
    height=(maxY - minY);
    if (width <= minX || height <= minY) {
      width=height=DEFAULT_DIM;
      float dim2=DEFAULT_DIM / 2;
      minX=-dim2;
      minY=-dim2;
      maxX=dim2;
      maxY=dim2;
    }
  }
  if (bbox != null) {
    float[] verts=bbox.getVertices();
    verts[0]=minX;
    verts[1]=minY;
    verts[2]=minX;
    verts[3]=maxY;
    verts[4]=maxX;
    verts[5]=maxY;
    verts[6]=maxX;
    verts[7]=minY;
    bbox.dirty();
  }
}