Program: 77111
Project: 77111
Buggy source:
/** 
 * Implements   {@link ValueManager#computeValue(CSSStylableElement,String,CSSEngine,int,StyleMap,Value)}.
 */
public Value computeValue(CSSStylableElement elt,CSSEngine engine,int idx,Value value){
  if (value.getCssValueType() == CSSValue.CSS_PRIMITIVE_VALUE) {
switch (value.getPrimitiveType()) {
case CSSPrimitiveValue.CSS_NUMBER:
      return value;
case CSSPrimitiveValue.CSS_PX:
    float v=value.getFloatValue();
  CSSContext cx=engine.getCSSContext();
float ratio=cx.getPixelUnitToMillimeter();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v * ratio / 25.4f * 72000.0f);
case CSSPrimitiveValue.CSS_MM:
v=value.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v / 25.4f * 72000.0f);
case CSSPrimitiveValue.CSS_CM:
v=value.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v / 2.54f * 72000.0f);
case CSSPrimitiveValue.CSS_IN:
v=value.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v * 72000.0f);
case CSSPrimitiveValue.CSS_PT:
v=value.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v * 1000.0f);
case CSSPrimitiveValue.CSS_PC:
v=value.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v / 12.0f * 1000.0f);
case CSSPrimitiveValue.CSS_EMS:
v=value.getFloatValue();
Value fontSize=(Value)elt.getComputedStyle().getProperty(IStyle.STYLE_FONT_SIZE);
float fs=fontSize.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v * fs);
case CSSPrimitiveValue.CSS_EXS:
v=value.getFloatValue();
fontSize=(Value)elt.getComputedStyle().getProperty(IStyle.STYLE_FONT_SIZE);
fs=fontSize.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v * fs * 0.5f);
}
}
return value;
}

Fixed version (ground truth):
/** 
 * Implements   {@link ValueManager#computeValue(CSSStylableElement,String,CSSEngine,int,StyleMap,Value)}.
 */
public Value computeValue(CSSStylableElement elt,CSSEngine engine,int idx,Value value){
  if (value.getCssValueType() == CSSValue.CSS_PRIMITIVE_VALUE) {
switch (value.getPrimitiveType()) {
case CSSPrimitiveValue.CSS_NUMBER:
      return value;
case CSSPrimitiveValue.CSS_PX:
    float v=value.getFloatValue();
  CSSContext cx=engine.getCSSContext();
float ratio=cx.getPixelUnitToMillimeter();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v * ratio / 25.4f * 72000.0f);
case CSSPrimitiveValue.CSS_MM:
v=value.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v / 25.4f * 72000.0f);
case CSSPrimitiveValue.CSS_CM:
v=value.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v / 2.54f * 72000.0f);
case CSSPrimitiveValue.CSS_IN:
v=value.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v * 72000.0f);
case CSSPrimitiveValue.CSS_PT:
v=value.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v * 1000.0f);
case CSSPrimitiveValue.CSS_PC:
v=value.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v * 12.0f * 1000.0f);
case CSSPrimitiveValue.CSS_EMS:
v=value.getFloatValue();
Value fontSize=(Value)elt.getComputedStyle().getProperty(IStyle.STYLE_FONT_SIZE);
float fs=fontSize.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v * fs);
case CSSPrimitiveValue.CSS_EXS:
v=value.getFloatValue();
fontSize=(Value)elt.getComputedStyle().getProperty(IStyle.STYLE_FONT_SIZE);
fs=fontSize.getFloatValue();
return new FloatValue(CSSPrimitiveValue.CSS_NUMBER,v * fs * 0.5f);
}
}
return value;
}