cubicto(FT_Vector *aControlPt1, FT_Vector *aControlPt2, FT_Vector *aEndPt, void *aClosure)
cubicto(nsFT_CONST FT_Vector *aControlPt1, nsFT_CONST FT_Vector *aControlPt2, nsFT_CONST FT_Vector *aEndPt, void *aClosure)
cubicto(FT_Vector *aControlPt1, FT_Vector *aControlPt2, FT_Vector *aEndPt,        void *aClosure){  FT2PT1_info *ftinfo = (FT2PT1_info *)aClosure;  FT_UShort upm = ftinfo->face->units_per_EM;  double cur_x, cur_y, x1, y1, x2, y2, x3, y3;  cur_x = ftinfo->cur_x;  cur_y = ftinfo->cur_y;  x1 = toCS(upm, aControlPt1->x);  y1 = toCS(upm, aControlPt1->y);  x2 = toCS(upm, aControlPt2->x);  y2 = toCS(upm, aControlPt2->y);  x3 = toCS(upm, aEndPt->x);  y3 = toCS(upm, aEndPt->y);  /* horizontal to vertical curve */  if (((int)(y1) == (int)(cur_y)) && ((int)(x3) == (int)(x2))) {    ftinfo->len += ecsi(&ftinfo->buf, (int)(x1-cur_x));    ftinfo->len += ecsi(&ftinfo->buf, (int)(x2-x1));    ftinfo->len += ecsi(&ftinfo->buf, (int)(y2-y1));    ftinfo->len += ecsi(&ftinfo->buf, (int)(y3-y2));    ftinfo->len += csc(&ftinfo->buf, T1_HVCURVETO);  }  /* vertical to horizontal curve */  else if (((int)(x1) == (int)(cur_x)) && ((int)(y3) == (int)(y2))) {    ftinfo->len += ecsi(&ftinfo->buf, (int)(y1-cur_y));    ftinfo->len += ecsi(&ftinfo->buf, (int)(x2-x1));    ftinfo->len += ecsi(&ftinfo->buf, (int)(y2-y1));    ftinfo->len += ecsi(&ftinfo->buf, (int)(x3-x2));    ftinfo->len += csc(&ftinfo->buf, T1_VHCURVETO);  }  else {    ftinfo->len += ecsi(&ftinfo->buf,  (int)(x1-cur_x));    ftinfo->len += ecsi(&ftinfo->buf,  (int)(y1-cur_y));    ftinfo->len += ecsi(&ftinfo->buf,  (int)(x2-x1));    ftinfo->len += ecsi(&ftinfo->buf,  (int)(y2-y1));    ftinfo->len += ecsi(&ftinfo->buf,  (int)(x3-x2));    ftinfo->len += ecsi(&ftinfo->buf,  (int)(y3-y2));    ftinfo->len += csc(&ftinfo->buf, T1_RRCURVETO);  }  ftinfo->cur_x = x3;  ftinfo->cur_y = y3;  ftinfo->elm_cnt++;  return 0;}