Call for testers: Const status accessors

Andrea Canciani <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <CAN_5=BDB-kEzgW9niD6WgSFsC_X8EHBFD0ccSj5D_pyGviRFow@mail.gmail.com>
The attached patch modifies cairo status accessors to accept a const
argument. This should be ok with C, but other languages might have
different issues.

I'd like if people using/maintaining bindings to cairo could test this
patch and report any problems it causes.

Thank you in advance

Andrea

--
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
0001-api-Const-ify-status-accessors.patch (text/plain, 7.1 KB)
From 64fc46b620a6de645ad66f87e6924ad8fc09a0de Mon Sep 17 00:00:00 2001
From: Andrea Canciani <[email protected]>
Date: Fri, 5 Aug 2011 10:10:55 +0200
Subject: [PATCH] api: Const-ify status accessors

In order to make the API consistent between cairo_region_status() and
other status accessors (without causing new warnings to existing
programs), all of the status accessors were modified to accept a const
argument with the following command:

sed -e 's/^\(cairo_.*status (\)cairo_/\1const cairo_/' -i.bak *.c *.h

This should not break existing programs, because it relaxes the API
and should not affect the ABI:

http://davidz25.blogspot.com/2011/07/writing-c-library-part-5.html#abi-api-versioning
---
 src/cairo-device.c       |    2 +-
 src/cairo-font-face.c    |    2 +-
 src/cairo-font-options.c |    2 +-
 src/cairo-pattern.c      |    2 +-
 src/cairo-scaled-font.c  |    2 +-
 src/cairo-surface.c      |    2 +-
 src/cairo-vg-surface.c   |    2 +-
 src/cairo-vg.h           |    2 +-
 src/cairo.c              |    2 +-
 src/cairo.h              |   14 +++++++-------
 10 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/cairo-device.c b/src/cairo-device.c
index fd1ec71..0d18842 100644
--- a/src/cairo-device.c
+++ b/src/cairo-device.c
@@ -225,7 +225,7 @@ slim_hidden_def (cairo_device_reference);
  * Since: 1.10
  **/
 cairo_status_t
-cairo_device_status (cairo_device_t *device)
+cairo_device_status (const cairo_device_t *device)
 {
     if (device == NULL)
 	return CAIRO_STATUS_NULL_POINTER;
diff --git a/src/cairo-font-face.c b/src/cairo-font-face.c
index e379b25..c45b1be 100644
--- a/src/cairo-font-face.c
+++ b/src/cairo-font-face.c
@@ -214,7 +214,7 @@ cairo_font_face_get_reference_count (cairo_font_face_t *font_face)
  *   %CAIRO_STATUS_NO_MEMORY.
  **/
 cairo_status_t
-cairo_font_face_status (cairo_font_face_t *font_face)
+cairo_font_face_status (const cairo_font_face_t *font_face)
 {
     return font_face->status;
 }
diff --git a/src/cairo-font-options.c b/src/cairo-font-options.c
index 521d371..52c501a 100644
--- a/src/cairo-font-options.c
+++ b/src/cairo-font-options.c
@@ -173,7 +173,7 @@ cairo_font_options_destroy (cairo_font_options_t *options)
  * Return value: %CAIRO_STATUS_SUCCESS or %CAIRO_STATUS_NO_MEMORY
  **/
 cairo_status_t
-cairo_font_options_status (cairo_font_options_t *options)
+cairo_font_options_status (const cairo_font_options_t *options)
 {
     if (options == NULL)
 	return CAIRO_STATUS_NULL_POINTER;
diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c
index cb6bba8..2668f5c 100644
--- a/src/cairo-pattern.c
+++ b/src/cairo-pattern.c
@@ -1030,7 +1030,7 @@ cairo_pattern_get_type (cairo_pattern_t *pattern)
  * or %CAIRO_STATUS_INVALID_MESH_CONSTRUCTION.
  **/
 cairo_status_t
-cairo_pattern_status (cairo_pattern_t *pattern)
+cairo_pattern_status (const cairo_pattern_t *pattern)
 {
     return pattern->status;
 }
diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c
index cb59bce..eef7e9e 100644
--- a/src/cairo-scaled-font.c
+++ b/src/cairo-scaled-font.c
@@ -312,7 +312,7 @@ cairo_scaled_font_get_type (cairo_scaled_font_t *scaled_font)
  *   %CAIRO_STATUS_NO_MEMORY.
  **/
 cairo_status_t
-cairo_scaled_font_status (cairo_scaled_font_t *scaled_font)
+cairo_scaled_font_status (const cairo_scaled_font_t *scaled_font)
 {
     return scaled_font->status;
 }
diff --git a/src/cairo-surface.c b/src/cairo-surface.c
index b699393..88013ba 100644
--- a/src/cairo-surface.c
+++ b/src/cairo-surface.c
@@ -234,7 +234,7 @@ slim_hidden_def(cairo_surface_get_content);
  * %CAIRO_STATUS_INVALID_VISUAL.
  **/
 cairo_status_t
-cairo_surface_status (cairo_surface_t *surface)
+cairo_surface_status (const cairo_surface_t *surface)
 {
     return surface->status;
 }
diff --git a/src/cairo-vg-surface.c b/src/cairo-vg-surface.c
index 392ed0b..e2f13d2 100644
--- a/src/cairo-vg-surface.c
+++ b/src/cairo-vg-surface.c
@@ -1917,7 +1917,7 @@ cairo_vg_context_create_for_egl (EGLDisplay egl_display,
 #endif
 
 cairo_status_t
-cairo_vg_context_status (cairo_vg_context_t *context)
+cairo_vg_context_status (const cairo_vg_context_t *context)
 {
     return context->status;
 }
diff --git a/src/cairo-vg.h b/src/cairo-vg.h
index f9a62e5..0511f76 100644
--- a/src/cairo-vg.h
+++ b/src/cairo-vg.h
@@ -67,7 +67,7 @@ cairo_vg_context_create_for_egl (EGLDisplay egl_display,
 #endif
 
 cairo_public cairo_status_t
-cairo_vg_context_status (cairo_vg_context_t *context);
+cairo_vg_context_status (const cairo_vg_context_t *context);
 
 cairo_public void
 cairo_vg_context_destroy (cairo_vg_context_t *context);
diff --git a/src/cairo.c b/src/cairo.c
index e58206b..f24def6 100644
--- a/src/cairo.c
+++ b/src/cairo.c
@@ -3832,7 +3832,7 @@ cairo_append_path (cairo_t		*cr,
  * Returns: the current status of this context, see #cairo_status_t
  **/
 cairo_status_t
-cairo_status (cairo_t *cr)
+cairo_status (const cairo_t *cr)
 {
     return cr->status;
 }
diff --git a/src/cairo.h b/src/cairo.h
index 1eb30d7..36dc99f 100644
--- a/src/cairo.h
+++ b/src/cairo.h
@@ -1269,7 +1269,7 @@ cairo_public void
 cairo_font_options_destroy (cairo_font_options_t *options);
 
 cairo_public cairo_status_t
-cairo_font_options_status (cairo_font_options_t *options);
+cairo_font_options_status (const cairo_font_options_t *options);
 
 cairo_public void
 cairo_font_options_merge (cairo_font_options_t       *options,
@@ -1395,7 +1395,7 @@ cairo_public unsigned int
 cairo_font_face_get_reference_count (cairo_font_face_t *font_face);
 
 cairo_public cairo_status_t
-cairo_font_face_status (cairo_font_face_t *font_face);
+cairo_font_face_status (const cairo_font_face_t *font_face);
 
 
 /**
@@ -1475,7 +1475,7 @@ cairo_public unsigned int
 cairo_scaled_font_get_reference_count (cairo_scaled_font_t *scaled_font);
 
 cairo_public cairo_status_t
-cairo_scaled_font_status (cairo_scaled_font_t *scaled_font);
+cairo_scaled_font_status (const cairo_scaled_font_t *scaled_font);
 
 cairo_public cairo_font_type_t
 cairo_scaled_font_get_type (cairo_scaled_font_t *scaled_font);
@@ -1980,7 +1980,7 @@ cairo_path_destroy (cairo_path_t *path);
 /* Error status queries */
 
 cairo_public cairo_status_t
-cairo_status (cairo_t *cr);
+cairo_status (const cairo_t *cr);
 
 cairo_public const char *
 cairo_status_to_string (cairo_status_t status);
@@ -2034,7 +2034,7 @@ cairo_public cairo_device_type_t
 cairo_device_get_type (cairo_device_t *device);
 
 cairo_public cairo_status_t
-cairo_device_status (cairo_device_t *device);
+cairo_device_status (const cairo_device_t *device);
 
 cairo_public cairo_status_t
 cairo_device_acquire (cairo_device_t *device);
@@ -2110,7 +2110,7 @@ cairo_public unsigned int
 cairo_surface_get_reference_count (cairo_surface_t *surface);
 
 cairo_public cairo_status_t
-cairo_surface_status (cairo_surface_t *surface);
+cairo_surface_status (const cairo_surface_t *surface);
 
 /**
  * cairo_surface_type_t:
@@ -2376,7 +2376,7 @@ cairo_public unsigned int
 cairo_pattern_get_reference_count (cairo_pattern_t *pattern);
 
 cairo_public cairo_status_t
-cairo_pattern_status (cairo_pattern_t *pattern);
+cairo_pattern_status (const cairo_pattern_t *pattern);
 
 cairo_public void *
 cairo_pattern_get_user_data (cairo_pattern_t		 *pattern,
-- 
1.7.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.