static cairo_status_t _cairo_path_fixed_add (cairo_path_fixed_t *path, cairo_path_op_t op, cairo_point_t *points, int num_points) { cairo_path_buf_t *buf = path->buf_tail; if (buf->num_ops + 1 > buf->buf_size || buf->num_points + num_points > 2 * buf->buf_size) { buf = _cairo_path_buf_create (buf->buf_size * 2); if (buf == NULL) return _cairo_error (CAIRO_STATUS_NO_MEMORY); _cairo_path_fixed_add_buf (path, buf); } _cairo_path_buf_add_op (buf, op); _cairo_path_buf_add_points (buf, points, num_points); return CAIRO_STATUS_SUCCESS; }
static cairo_status_t _cairo_path_fixed_add (cairo_path_fixed_t *path, cairo_path_op_t op, cairo_point_t *points, int num_points) { if ((unsigned int) path->buf_tail->num_ops + 1 > CAIRO_PATH_BUF_SIZE || (unsigned int) path->buf_tail->num_points + num_points > CAIRO_PATH_BUF_SIZE) { cairo_path_buf_t *buf; buf = _cairo_path_buf_create (); if (buf == NULL) return CAIRO_STATUS_NO_MEMORY; _cairo_path_fixed_add_buf (path, buf); } _cairo_path_buf_add_op (path->buf_tail, op); _cairo_path_buf_add_points (path->buf_tail, points, num_points); return CAIRO_STATUS_SUCCESS; }