Program: 112489
Project: 112489
Buggy source:
/** 
 * Handles a hit result.
 * @param time the object start time
 * @param result the hit result (HIT_* constants)
 * @param x the x coordinate
 * @param y the y coordinate
 * @param color the combo color
 * @param end true if this is the last hit object in the combo
 * @param hitObject the hit object
 * @param hitResultType the type of hit object for the result
 * @param expand whether or not the hit result animation should expand (if applicable)
 * @param repeat the current repeat number (for sliders, or 0 otherwise)
 * @param curve the slider curve (or null if not applicable)
 * @param sliderHeldToEnd whether or not the slider was held to the end (if applicable)
 */
public void hitResult(int time,int result,float x,float y,Color color,boolean end,HitObject hitObject,HitObjectType hitResultType,boolean expand,int repeat,Curve curve,boolean sliderHeldToEnd){
  int hitResult=handleHitResult(time,result,x,y,color,end,hitObject,hitResultType,repeat,(curve != null && !sliderHeldToEnd));
  if ((hitResult == HIT_300 || hitResult == HIT_300G || hitResult == HIT_300K) && !Options.isPerfectHitBurstEnabled())   ;
 else   if (hitResult == HIT_MISS && (GameMod.RELAX.isActive() || GameMod.AUTOPILOT.isActive()))   ;
 else {
    hitResultList.add(new HitObjectResult(time,hitResult,x,y,color,hitResultType,curve,expand));
    if (curve != null) {
      boolean isFirst=(hitResultType == HitObjectType.SLIDER_FIRST);
      float[] p=curve.pointAt((isFirst) ? 1f : 0f);
      HitObjectType type=(isFirst) ? HitObjectType.SLIDER_LAST : HitObjectType.SLIDER_FIRST;
      hitResultList.add(new HitObjectResult(time,hitResult,p[0],p[1],color,type,null,expand));
    }
  }
}

Fixed version (ground truth):
/** 
 * Handles a hit result.
 * @param time the object start time
 * @param result the hit result (HIT_* constants)
 * @param x the x coordinate
 * @param y the y coordinate
 * @param color the combo color
 * @param end true if this is the last hit object in the combo
 * @param hitObject the hit object
 * @param hitResultType the type of hit object for the result
 * @param expand whether or not the hit result animation should expand (if applicable)
 * @param repeat the current repeat number (for sliders, or 0 otherwise)
 * @param curve the slider curve (or null if not applicable)
 * @param sliderHeldToEnd whether or not the slider was held to the end (if applicable)
 */
public void hitResult(int time,int result,float x,float y,Color color,boolean end,HitObject hitObject,HitObjectType hitResultType,boolean expand,int repeat,Curve curve,boolean sliderHeldToEnd){
  int hitResult=handleHitResult(time,result,x,y,color,end,hitObject,hitResultType,repeat,(curve != null && !sliderHeldToEnd));
  if (hitResult == HIT_MISS && (GameMod.RELAX.isActive() || GameMod.AUTOPILOT.isActive()))   return;
  boolean hideResult=(hitResult == HIT_300 || hitResult == HIT_300G || hitResult == HIT_300K) && !Options.isPerfectHitBurstEnabled();
  hitResultList.add(new HitObjectResult(time,hitResult,x,y,color,hitResultType,curve,expand,hideResult));
  if (curve != null) {
    boolean isFirst=(hitResultType == HitObjectType.SLIDER_FIRST);
    float[] p=curve.pointAt((isFirst) ? 1f : 0f);
    HitObjectType type=(isFirst) ? HitObjectType.SLIDER_LAST : HitObjectType.SLIDER_FIRST;
    hitResultList.add(new HitObjectResult(time,hitResult,p[0],p[1],color,type,null,expand,hideResult));
  }
}