From 93d4e01a8b56e9e07b323e1d156ee2fc022d0c08 Mon Sep 17 00:00:00 2001 From: Lubosz Sarnecki Date: Mon, 4 Aug 2014 12:55:40 +0200 Subject: [PATCH 3/3] fix PyVarObject_HEAD_INIT problem http://bugs.python.org/issue10773 --- src/context.c | 4 ++-- src/font.c | 16 ++++++++-------- src/matrix.c | 3 ++- src/path.c | 8 ++++---- src/pattern.c | 24 ++++++++++++------------ src/region.c | 6 ++++-- src/surface.c | 30 ++++++++++++++++++++---------- 7 files changed, 52 insertions(+), 39 deletions(-) diff --git a/src/context.c b/src/context.c index 984cdfc..3d7e334 100644 --- a/src/context.c +++ b/src/context.c @@ -1344,8 +1344,8 @@ static PyMethodDef pycairo_methods[] = { }; PyTypeObject PycairoContext_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - // PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.Context", /* tp_name */ sizeof(PycairoContext), /* tp_basicsize */ diff --git a/src/font.c b/src/font.c index 6c7ca4e..7c92692 100644 --- a/src/font.c +++ b/src/font.c @@ -90,8 +90,8 @@ static PyMethodDef font_face_methods[] = { */ PyTypeObject PycairoFontFace_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - //PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.FontFace", /* tp_name */ sizeof(PycairoFontFace), /* tp_basicsize */ @@ -178,8 +178,8 @@ static PyMethodDef toy_font_face_methods[] = { PyTypeObject PycairoToyFontFace_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - //PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.ToyFontFace", /* tp_name */ sizeof(PycairoToyFontFace), /* tp_basicsize */ @@ -340,8 +340,8 @@ static PyMethodDef scaled_font_methods[] = { PyTypeObject PycairoScaledFont_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - //PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.ScaledFont", /* tp_name */ sizeof(PycairoScaledFont), /* tp_basicsize */ @@ -527,8 +527,8 @@ static PyMethodDef font_options_methods[] = { PyTypeObject PycairoFontOptions_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - //PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.FontOptions", /* tp_name */ sizeof(PycairoFontOptions), /* tp_basicsize */ diff --git a/src/matrix.c b/src/matrix.c index 24f6e4a..3601037 100644 --- a/src/matrix.c +++ b/src/matrix.c @@ -284,7 +284,8 @@ static PyMethodDef matrix_methods[] = { }; PyTypeObject PycairoMatrix_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) "cairo.Matrix", /* tp_name */ sizeof(PycairoMatrix), /* tp_basicsize */ 0, /* tp_itemsize */ diff --git a/src/path.c b/src/path.c index e0814d8..546f28d 100644 --- a/src/path.c +++ b/src/path.c @@ -165,8 +165,8 @@ static PyObject * path_iter(PyObject *seq); /* forward declaration */ PyTypeObject PycairoPath_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - //PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.Path", /* tp_name */ sizeof(PycairoPath), /* tp_basicsize */ @@ -286,8 +286,8 @@ pathiter_next(PycairoPathiter *it) { } PyTypeObject PycairoPathiter_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - //PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.Pathiter", /* tp_name */ sizeof(PycairoPathiter), /* tp_basicsize */ diff --git a/src/pattern.c b/src/pattern.c index 9daf5c4..685de55 100644 --- a/src/pattern.c +++ b/src/pattern.c @@ -153,8 +153,8 @@ static PyMethodDef pattern_methods[] = { }; PyTypeObject PycairoPattern_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - //PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.Pattern", /* tp_name */ sizeof(PycairoPattern), /* tp_basicsize */ @@ -223,8 +223,8 @@ static PyMethodDef solid_pattern_methods[] = { }; PyTypeObject PycairoSolidPattern_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - //PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.SolidPattern", /* tp_name */ sizeof(PycairoSolidPattern), /* tp_basicsize */ @@ -316,8 +316,8 @@ static PyMethodDef surface_pattern_methods[] = { }; PyTypeObject PycairoSurfacePattern_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - //PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.SurfacePattern", /* tp_name */ sizeof(PycairoSurfacePattern), /* tp_basicsize */ @@ -402,8 +402,8 @@ static PyMethodDef gradient_methods[] = { }; PyTypeObject PycairoGradient_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - //PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.Gradient", /* tp_name */ sizeof(PycairoGradient), /* tp_basicsize */ @@ -473,8 +473,8 @@ static PyMethodDef linear_gradient_methods[] = { }; PyTypeObject PycairoLinearGradient_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - //PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.LinearGradient", /* tp_name */ sizeof(PycairoLinearGradient), /* tp_basicsize */ @@ -546,8 +546,8 @@ static PyMethodDef radial_gradient_methods[] = { }; PyTypeObject PycairoRadialGradient_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) - //PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) //0, /* ob_size */ "cairo.RadialGradient", /* tp_name */ sizeof(PycairoRadialGradient), /* tp_basicsize */ diff --git a/src/region.c b/src/region.c index 2198ccd..54e98a7 100644 --- a/src/region.c +++ b/src/region.c @@ -127,7 +127,8 @@ static PyMemberDef RectangleInt_members[] = { }; PyTypeObject PycairoRectangleInt_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) "cairo.RectangleInt", /* tp_name */ sizeof(PycairoRectangleInt), /* tp_basicsize */ 0, /* tp_itemsize */ @@ -557,7 +558,8 @@ static PyMethodDef region_methods[] = { }; PyTypeObject PycairoRegion_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) "cairo.Region", /* tp_name */ sizeof(PycairoRegion), /* tp_basicsize */ 0, /* tp_itemsize */ diff --git a/src/surface.c b/src/surface.c index 204af68..23333de 100644 --- a/src/surface.c +++ b/src/surface.c @@ -390,7 +390,8 @@ static PyMethodDef surface_methods[] = { PyTypeObject PycairoSurface_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) "cairo.Surface", /* tp_name */ sizeof(PycairoSurface), /* tp_basicsize */ 0, /* tp_itemsize */ @@ -653,7 +654,8 @@ static PyMethodDef image_surface_methods[] = { PyTypeObject PycairoImageSurface_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) "cairo.ImageSurface", /* tp_name */ sizeof(PycairoImageSurface), /* tp_basicsize */ 0, /* tp_itemsize */ @@ -806,7 +808,8 @@ static PyMethodDef pdf_surface_methods[] = { }; PyTypeObject PycairoPDFSurface_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) "cairo.PDFSurface", /* tp_name */ sizeof(PycairoPDFSurface), /* tp_basicsize */ 0, /* tp_itemsize */ @@ -1005,7 +1008,8 @@ static PyMethodDef ps_surface_methods[] = { }; PyTypeObject PycairoPSSurface_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) "cairo.PSSurface", /* tp_name */ sizeof(PycairoPSSurface), /* tp_basicsize */ 0, /* tp_itemsize */ @@ -1096,7 +1100,8 @@ static PyMethodDef recording_surface_methods[] = { }; PyTypeObject PycairoRecordingSurface_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) "cairo.RecordingSurface", /* tp_name */ sizeof(PycairoRecordingSurface), /* tp_basicsize */ 0, /* tp_itemsize */ @@ -1235,7 +1240,8 @@ static PyMethodDef svg_surface_methods[] = { }; PyTypeObject PycairoSVGSurface_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) "cairo.SVGSurface", /* tp_name */ sizeof(PycairoSVGSurface), /* tp_basicsize */ 0, /* tp_itemsize */ @@ -1299,7 +1305,8 @@ static PyMethodDef win32_surface_methods[] = { }; PyTypeObject PycairoWin32Surface_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) "cairo.Win32Surface", /* tp_name */ sizeof(PycairoWin32Surface), /* tp_basicsize */ 0, /* tp_itemsize */ @@ -1360,7 +1367,8 @@ static PyMethodDef win32_printing_surface_methods[] = { }; PyTypeObject PycairoWin32PrintingSurface_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) "cairo.Win32PrintingSurface", /* tp_name */ sizeof(PycairoWin32PrintingSurface), /* tp_basicsize */ 0, /* tp_itemsize */ @@ -1508,7 +1516,8 @@ static PyMethodDef xcb_surface_methods[] = { }; PyTypeObject PycairoXCBSurface_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) "cairo.XCBSurface", /* tp_name */ sizeof(PycairoXCBSurface), /* tp_basicsize */ 0, /* tp_itemsize */ @@ -1587,7 +1596,8 @@ static PyMethodDef xlib_surface_methods[] = { }; PyTypeObject PycairoXlibSurface_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + //PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyObject_HEAD_INIT(NULL) "cairo.XlibSurface", /* tp_name */ sizeof(PycairoXlibSurface), /* tp_basicsize */ 0, /* tp_itemsize */ -- 2.0.4