Created
August 20, 2016 16:38
-
-
Save dbeecham/a4b50e6ce5ea0bcc8b0dfa6bcf5a69ae to your computer and use it in GitHub Desktop.
Revisions
-
dbeecham created this gist
Aug 20, 2016 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,993 @@ commit 585119ed454efe10632740256b7b375a1920cd57 Author: Daniel Beecham <[email protected]> Date: Sat Aug 20 18:21:18 2016 +0200 Implement method chaining diff --git a/src/context.c b/src/context.c index 984cdfc..f87665a 100644 --- a/src/context.c +++ b/src/context.c @@ -90,7 +90,8 @@ pycairo_append_path (PycairoContext *o, PyObject *args) { cairo_append_path (o->ctx, p->path); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -103,7 +104,8 @@ pycairo_arc (PycairoContext *o, PyObject *args) { cairo_arc (o->ctx, xc, yc, radius, angle1, angle2); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -116,7 +118,8 @@ pycairo_arc_negative (PycairoContext *o, PyObject *args) { cairo_arc_negative (o->ctx, xc, yc, radius, angle1, angle2); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -125,7 +128,8 @@ pycairo_clip (PycairoContext *o) { cairo_clip (o->ctx); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -142,7 +146,8 @@ pycairo_clip_preserve (PycairoContext *o) { cairo_clip_preserve (o->ctx); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -151,7 +156,8 @@ pycairo_close_path (PycairoContext *o) { cairo_close_path (o->ctx); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -189,7 +195,8 @@ pycairo_copy_page (PycairoContext *o) { cairo_copy_page (o->ctx); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -220,7 +227,8 @@ pycairo_curve_to (PycairoContext *o, PyObject *args) { cairo_curve_to (o->ctx, x1, y1, x2, y2, x3, y3); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -254,7 +262,8 @@ pycairo_fill (PycairoContext *o) { cairo_fill (o->ctx); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -271,7 +280,8 @@ pycairo_fill_preserve (PycairoContext *o) { cairo_fill_preserve (o->ctx); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -511,7 +521,8 @@ pycairo_glyph_path (PycairoContext *o, PyObject *args) { cairo_glyph_path (o->ctx, glyphs, num_glyphs); PyMem_Free (glyphs); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -526,7 +537,8 @@ static PyObject * pycairo_identity_matrix (PycairoContext *o) { cairo_identity_matrix (o->ctx); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -580,7 +592,8 @@ pycairo_line_to (PycairoContext *o, PyObject *args) { cairo_line_to (o->ctx, x, y); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -594,7 +607,8 @@ pycairo_mask (PycairoContext *o, PyObject *args) { cairo_mask (o->ctx, p->pattern); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -610,7 +624,8 @@ pycairo_mask_surface (PycairoContext *o, PyObject *args) { cairo_mask_surface (o->ctx, s->surface, surface_x, surface_y); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -622,21 +637,24 @@ pycairo_move_to (PycairoContext *o, PyObject *args) { cairo_move_to (o->ctx, x, y); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * pycairo_new_path (PycairoContext *o) { cairo_new_path (o->ctx); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * pycairo_new_sub_path (PycairoContext *o) { cairo_new_sub_path (o->ctx); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -645,7 +663,8 @@ pycairo_paint (PycairoContext *o) { cairo_paint (o->ctx); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -659,7 +678,8 @@ pycairo_paint_with_alpha (PycairoContext *o, PyObject *args) { cairo_paint_with_alpha (o->ctx, alpha); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -678,14 +698,16 @@ pycairo_pop_group (PycairoContext *o) { static PyObject * pycairo_pop_group_to_source (PycairoContext *o) { cairo_pop_group_to_source (o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * pycairo_push_group (PycairoContext *o) { cairo_push_group (o->ctx); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -697,7 +719,8 @@ pycairo_push_group_with_content (PycairoContext *o, PyObject *args) { return NULL; cairo_push_group_with_content (o->ctx, content); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -710,7 +733,8 @@ pycairo_rectangle (PycairoContext *o, PyObject *args) { cairo_rectangle (o->ctx, x, y, width, height); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -723,7 +747,8 @@ pycairo_rel_curve_to (PycairoContext *o, PyObject *args) { cairo_rel_curve_to (o->ctx, dx1, dy1, dx2, dy2, dx3, dy3); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -735,7 +760,8 @@ pycairo_rel_line_to (PycairoContext *o, PyObject *args) { cairo_rel_line_to (o->ctx, dx, dy); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -747,21 +773,24 @@ pycairo_rel_move_to (PycairoContext *o, PyObject *args) { cairo_rel_move_to (o->ctx, dx, dy); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * pycairo_reset_clip (PycairoContext *o) { cairo_reset_clip (o->ctx); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * pycairo_restore (PycairoContext *o) { cairo_restore (o->ctx); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -773,14 +802,16 @@ pycairo_rotate (PycairoContext *o, PyObject *args) { cairo_rotate (o->ctx, angle); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * pycairo_save (PycairoContext *o) { cairo_save (o->ctx); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -792,7 +823,8 @@ pycairo_scale (PycairoContext *o, PyObject *args) { cairo_scale (o->ctx, sx, sy); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -808,7 +840,8 @@ pycairo_select_font_face (PycairoContext *o, PyObject *args) { cairo_select_font_face (o->ctx, utf8, slant, weight); PyMem_Free((void *)utf8); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -820,7 +853,8 @@ pycairo_set_antialias (PycairoContext *o, PyObject *args) { cairo_set_antialias (o->ctx, antialias); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -856,7 +890,8 @@ pycairo_set_dash (PycairoContext *o, PyObject *args) { PyMem_Free (dashes); Py_DECREF(py_dashes); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -868,7 +903,8 @@ pycairo_set_fill_rule (PycairoContext *o, PyObject *args) { cairo_set_fill_rule (o->ctx, fill_rule); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -884,7 +920,8 @@ pycairo_set_font_face (PycairoContext *o, PyObject *obj) { return NULL; } RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -897,7 +934,8 @@ pycairo_set_font_matrix (PycairoContext *o, PyObject *args) { cairo_set_font_matrix (o->ctx, &matrix->matrix); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -910,7 +948,8 @@ pycairo_set_font_options (PycairoContext *o, PyObject *args) { cairo_set_font_options (o->ctx, options->font_options); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -922,7 +961,8 @@ pycairo_set_font_size (PycairoContext *o, PyObject *args) { cairo_set_font_size (o->ctx, size); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -934,7 +974,8 @@ pycairo_set_line_cap (PycairoContext *o, PyObject *args) { cairo_set_line_cap (o->ctx, line_cap); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -946,7 +987,8 @@ pycairo_set_line_join (PycairoContext *o, PyObject *args) { cairo_set_line_join (o->ctx, line_join); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -958,7 +1000,8 @@ pycairo_set_line_width (PycairoContext *o, PyObject *args) { cairo_set_line_width (o->ctx, width); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -971,7 +1014,8 @@ pycairo_set_matrix (PycairoContext *o, PyObject *args) { cairo_set_matrix (o->ctx, &matrix->matrix); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -983,7 +1027,8 @@ pycairo_set_miter_limit (PycairoContext *o, PyObject *args) { cairo_set_miter_limit (o->ctx, limit); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -995,7 +1040,8 @@ pycairo_set_operator(PycairoContext *o, PyObject *args) { cairo_set_operator(o->ctx, op); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1007,7 +1053,8 @@ pycairo_set_scaled_font(PycairoContext *o, PyObject *args) { cairo_set_scaled_font(o->ctx, f->scaled_font); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1020,7 +1067,8 @@ pycairo_set_source (PycairoContext *o, PyObject *args) { cairo_set_source (o->ctx, p->pattern); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1033,7 +1081,8 @@ pycairo_set_source_rgb (PycairoContext *o, PyObject *args) { cairo_set_source_rgb (o->ctx, red, green, blue); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1047,7 +1096,8 @@ pycairo_set_source_rgba (PycairoContext *o, PyObject *args) { cairo_set_source_rgba (o->ctx, red, green, blue, alpha); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1061,7 +1111,8 @@ pycairo_set_source_surface (PycairoContext *o, PyObject *args) { cairo_set_source_surface (o->ctx, surface->surface, x, y); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1071,7 +1122,8 @@ pycairo_set_tolerance (PycairoContext *o, PyObject *args) { return NULL; cairo_set_tolerance (o->ctx, tolerance); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1092,7 +1144,8 @@ pycairo_show_glyphs (PycairoContext *o, PyObject *args) { Py_END_ALLOW_THREADS; PyMem_Free (glyphs); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1101,7 +1154,8 @@ pycairo_show_page (PycairoContext *o) { cairo_show_page (o->ctx); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1117,7 +1171,8 @@ pycairo_show_text (PycairoContext *o, PyObject *args) { PyMem_Free((void *)utf8); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1126,7 +1181,8 @@ pycairo_stroke (PycairoContext *o) { cairo_stroke (o->ctx); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1143,7 +1199,8 @@ pycairo_stroke_preserve (PycairoContext *o) { cairo_stroke_preserve (o->ctx); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1172,7 +1229,8 @@ pycairo_text_path (PycairoContext *o, PyObject *args) { cairo_text_path (o->ctx, utf8); PyMem_Free((void *)utf8); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1185,7 +1243,8 @@ pycairo_transform (PycairoContext *o, PyObject *args) { cairo_transform (o->ctx, &matrix->matrix); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -1197,7 +1256,8 @@ pycairo_translate (PycairoContext *o, PyObject *args) { cairo_translate (o->ctx, tx, ty); RETURN_NULL_IF_CAIRO_CONTEXT_ERROR(o->ctx); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * diff --git a/src/font.c b/src/font.c index 6c7ca4e..4d82601 100644 --- a/src/font.c +++ b/src/font.c @@ -460,7 +460,8 @@ font_options_set_antialias (PycairoFontOptions *o, PyObject *args) { cairo_font_options_set_antialias (o->font_options, aa); RETURN_NULL_IF_CAIRO_FONT_OPTIONS_ERROR(o->font_options); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -472,7 +473,8 @@ font_options_set_hint_metrics (PycairoFontOptions *o, PyObject *args) { cairo_font_options_set_hint_metrics (o->font_options, hm); RETURN_NULL_IF_CAIRO_FONT_OPTIONS_ERROR(o->font_options); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -484,7 +486,8 @@ font_options_set_hint_style (PycairoFontOptions *o, PyObject *args) { cairo_font_options_set_hint_style (o->font_options, hs); RETURN_NULL_IF_CAIRO_FONT_OPTIONS_ERROR(o->font_options); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -496,7 +499,8 @@ font_options_set_subpixel_order (PycairoFontOptions *o, PyObject *args) { cairo_font_options_set_subpixel_order (o->font_options, so); RETURN_NULL_IF_CAIRO_FONT_OPTIONS_ERROR(o->font_options); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } diff --git a/src/matrix.c b/src/matrix.c index 24f6e4a..4ab26e8 100644 --- a/src/matrix.c +++ b/src/matrix.c @@ -76,7 +76,8 @@ static PyObject * matrix_invert (PycairoMatrix *o) { if (Pycairo_Check_Status (cairo_matrix_invert (&o->matrix))) return NULL; - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } /* cairo_matrix_multiply */ @@ -145,7 +146,8 @@ matrix_rotate (PycairoMatrix *o, PyObject *args) { return NULL; cairo_matrix_rotate (&o->matrix, radians); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -156,7 +158,8 @@ matrix_scale (PycairoMatrix *o, PyObject *args) { return NULL; cairo_matrix_scale (&o->matrix, sx, sy); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -189,7 +192,8 @@ matrix_translate (PycairoMatrix *o, PyObject *args) { return NULL; cairo_matrix_translate (&o->matrix, tx, ty); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * diff --git a/src/pattern.c b/src/pattern.c index 9daf5c4..0a2f19c 100644 --- a/src/pattern.c +++ b/src/pattern.c @@ -121,7 +121,8 @@ pattern_set_extend (PycairoPattern *o, PyObject *args) { return NULL; cairo_pattern_set_extend (o->pattern, extend); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -133,7 +134,8 @@ pattern_set_matrix (PycairoPattern *o, PyObject *args) { return NULL; cairo_pattern_set_matrix (o->pattern, &m->matrix); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyMethodDef pattern_methods[] = { @@ -305,7 +307,8 @@ surface_pattern_set_filter (PycairoSurfacePattern *o, PyObject *args) { return NULL; cairo_pattern_set_filter (o->pattern, filter); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyMethodDef surface_pattern_methods[] = { @@ -378,7 +381,8 @@ gradient_add_color_stop_rgb (PycairoGradient *o, PyObject *args) { return NULL; cairo_pattern_add_color_stop_rgb (o->pattern, offset, red, green, blue); RETURN_NULL_IF_CAIRO_PATTERN_ERROR(o->pattern); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -390,7 +394,8 @@ gradient_add_color_stop_rgba (PycairoGradient *o, PyObject *args) { cairo_pattern_add_color_stop_rgba (o->pattern, offset, red, green, blue, alpha); RETURN_NULL_IF_CAIRO_PATTERN_ERROR(o->pattern); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyMethodDef gradient_methods[] = { diff --git a/src/region.c b/src/region.c index 2198ccd..c4ef05b 100644 --- a/src/region.c +++ b/src/region.c @@ -414,7 +414,8 @@ region_translate (PycairoRegion *o, PyObject *args) { Py_BEGIN_ALLOW_THREADS; cairo_region_translate (o->region, x, y); Py_END_ALLOW_THREADS; - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } @@ -443,7 +444,8 @@ region_intersect (PycairoRegion *o, PyObject *args) { } RETURN_NULL_IF_CAIRO_ERROR(res); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } PyObject * @@ -470,7 +472,8 @@ region_subtract (PycairoRegion *o, PyObject *args) { return NULL; } RETURN_NULL_IF_CAIRO_ERROR(res); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } PyObject * @@ -497,7 +500,8 @@ region_union (PycairoRegion *o, PyObject *args) { return NULL; } RETURN_NULL_IF_CAIRO_ERROR(res); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } PyObject * @@ -524,7 +528,8 @@ region_xor (PycairoRegion *o, PyObject *args) { return NULL; } RETURN_NULL_IF_CAIRO_ERROR(res); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyMethodDef region_methods[] = { diff --git a/src/surface.c b/src/surface.c index 204af68..c8da15e 100644 --- a/src/surface.c +++ b/src/surface.c @@ -185,7 +185,8 @@ surface_copy_page (PycairoSurface *o) { cairo_surface_copy_page (o->surface); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -220,7 +221,8 @@ surface_finish (PycairoSurface *o) { cairo_surface_finish (o->surface); Py_CLEAR(o->base); RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -229,7 +231,8 @@ surface_flush (PycairoSurface *o) { cairo_surface_flush (o->surface); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -264,7 +267,8 @@ static PyObject * surface_mark_dirty (PycairoSurface *o) { cairo_surface_mark_dirty (o->surface); RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -277,7 +281,8 @@ surface_mark_dirty_rectangle (PycairoSurface *o, PyObject *args) { cairo_surface_mark_dirty_rectangle (o->surface, x, y, width, height); RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -289,7 +294,8 @@ surface_set_device_offset (PycairoSurface *o, PyObject *args) { return NULL; cairo_surface_set_device_offset (o->surface, x_offset, y_offset); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -300,7 +306,8 @@ surface_set_fallback_resolution (PycairoSurface *o, PyObject *args) { &x_ppi, &y_ppi)) return NULL; cairo_surface_set_fallback_resolution (o->surface, x_ppi, y_ppi); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -309,7 +316,8 @@ surface_show_page (PycairoSurface *o) { cairo_surface_show_page (o->surface); Py_END_ALLOW_THREADS; RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } #ifdef CAIRO_HAS_PNG_FUNCTIONS @@ -351,7 +359,8 @@ surface_write_to_png (PycairoSurface *o, PyObject *args) { Py_END_ALLOW_THREADS; } RETURN_NULL_IF_CAIRO_ERROR(status); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } #endif /* CAIRO_HAS_PNG_FUNCTIONS */ @@ -765,7 +774,8 @@ pdf_surface_restrict_to_version (PycairoPDFSurface *o, PyObject *args) { return NULL; cairo_pdf_surface_restrict_to_version (o->surface, version); RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -777,7 +787,8 @@ pdf_surface_set_size (PycairoPDFSurface *o, PyObject *args) { return NULL; cairo_pdf_surface_set_size (o->surface, width_in_points, height_in_points); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } /* METH_STATIC */ @@ -913,14 +924,16 @@ static PyObject * ps_surface_dsc_begin_page_setup (PycairoPSSurface *o) { cairo_ps_surface_dsc_begin_page_setup (o->surface); RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * ps_surface_dsc_begin_setup (PycairoPSSurface *o) { cairo_ps_surface_dsc_begin_setup (o->surface); RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -930,7 +943,8 @@ ps_surface_dsc_comment (PycairoPSSurface *o, PyObject *args) { return NULL; cairo_ps_surface_dsc_comment (o->surface, comment); RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -963,7 +977,8 @@ ps_surface_restrict_to_level (PycairoPSSurface *o, PyObject *args) { return NULL; cairo_ps_surface_restrict_to_level (o->surface, level); RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -974,7 +989,8 @@ ps_surface_set_eps (PycairoPSSurface *o, PyObject *args) { return NULL; cairo_ps_surface_set_eps (o->surface, (py_eps == Py_True)); RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyObject * @@ -985,7 +1001,8 @@ ps_surface_set_size (PycairoPSSurface *o, PyObject *args) { &width_in_points, &height_in_points)) return NULL; cairo_ps_surface_set_size (o->surface, width_in_points, height_in_points); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } static PyMethodDef ps_surface_methods[] = { @@ -1207,7 +1224,8 @@ svg_surface_restrict_to_version (PycairoSVGSurface *o, PyObject *args) { return NULL; cairo_svg_surface_restrict_to_version (o->surface, version); RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } /* METH_STATIC */ @@ -1496,7 +1514,8 @@ xcb_surface_set_size (PycairoXCBSurface *o, PyObject *args) { if (!PyArg_ParseTuple(args, "ii:XCBSurface.set_size", &width, &height)) return NULL; cairo_xcb_surface_set_size (o->surface, width, height); - Py_RETURN_NONE; + Py_INCREF(o); + return (PyObject *)o; } #endif