GApplication: Plug a memory leak
[platform/upstream/glib.git] / gio / gpermission.c
index 4a57189..0fcd17e 100644 (file)
@@ -12,9 +12,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  *
  * Author: Ryan Lortie <desrt@desrt.ca>
  */
@@ -33,8 +31,9 @@
 /**
  * SECTION:gpermission
  * @title: GPermission
- * @short_description: An object representing the permission to perform
- *                     a certain action
+ * @short_description: An object representing the permission
+ *     to perform a certain action
+ * @include: gio/gio.h
  *
  * A #GPermission represents the status of the caller's permission to
  * perform a certain action.
@@ -60,8 +59,6 @@
  * using the following functions.
  **/
 
-G_DEFINE_ABSTRACT_TYPE (GPermission, g_permission, G_TYPE_OBJECT)
-
 struct _GPermissionPrivate
 {
   gboolean allowed;
@@ -76,6 +73,8 @@ enum  {
   PROP_CAN_RELEASE
 };
 
+G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GPermission, g_permission, G_TYPE_OBJECT)
+
 /**
  * g_permission_acquire:
  * @permission: a #GPermission instance
@@ -107,6 +106,7 @@ g_permission_acquire (GPermission   *permission,
                       GCancellable  *cancellable,
                       GError       **error)
 {
+  g_return_val_if_fail (G_IS_PERMISSION (permission), FALSE);
   return G_PERMISSION_GET_CLASS (permission)
     ->acquire (permission, cancellable, error);
 }
@@ -131,6 +131,7 @@ g_permission_acquire_async (GPermission         *permission,
                             GAsyncReadyCallback  callback,
                             gpointer             user_data)
 {
+  g_return_if_fail (G_IS_PERMISSION (permission));
   G_PERMISSION_GET_CLASS (permission)
     ->acquire_async (permission, cancellable, callback, user_data);
 }
@@ -156,6 +157,7 @@ g_permission_acquire_finish (GPermission   *permission,
                              GAsyncResult  *result,
                              GError       **error)
 {
+  g_return_val_if_fail (G_IS_PERMISSION (permission), FALSE);
   return G_PERMISSION_GET_CLASS (permission)
     ->acquire_finish (permission, result, error);
 }
@@ -191,6 +193,7 @@ g_permission_release (GPermission   *permission,
                       GCancellable  *cancellable,
                       GError       **error)
 {
+  g_return_val_if_fail (G_IS_PERMISSION (permission), FALSE);
   return G_PERMISSION_GET_CLASS (permission)
     ->release (permission, cancellable, error);
 }
@@ -215,6 +218,7 @@ g_permission_release_async (GPermission         *permission,
                             GAsyncReadyCallback  callback,
                             gpointer             user_data)
 {
+  g_return_if_fail (G_IS_PERMISSION (permission));
   G_PERMISSION_GET_CLASS (permission)
     ->release_async (permission, cancellable, callback, user_data);
 }
@@ -240,6 +244,7 @@ g_permission_release_finish (GPermission   *permission,
                              GAsyncResult  *result,
                              GError       **error)
 {
+  g_return_val_if_fail (G_IS_PERMISSION (permission), FALSE);
   return G_PERMISSION_GET_CLASS (permission)
     ->release_finish (permission, result, error);
 }
@@ -259,6 +264,7 @@ g_permission_release_finish (GPermission   *permission,
 gboolean
 g_permission_get_allowed (GPermission *permission)
 {
+  g_return_val_if_fail (G_IS_PERMISSION (permission), FALSE);
   return permission->priv->allowed;
 }
 
@@ -277,6 +283,7 @@ g_permission_get_allowed (GPermission *permission)
 gboolean
 g_permission_get_can_acquire (GPermission *permission)
 {
+  g_return_val_if_fail (G_IS_PERMISSION (permission), FALSE);
   return permission->priv->can_acquire;
 }
 
@@ -295,6 +302,7 @@ g_permission_get_can_acquire (GPermission *permission)
 gboolean
 g_permission_get_can_release (GPermission *permission)
 {
+  g_return_val_if_fail (G_IS_PERMISSION (permission), FALSE);
   return permission->priv->can_release;
 }
 
@@ -319,8 +327,11 @@ g_permission_impl_update (GPermission *permission,
                           gboolean     can_acquire,
                           gboolean     can_release)
 {
-  GObject *object = G_OBJECT (permission);
+  GObject *object;
 
+  g_return_if_fail (G_IS_PERMISSION (permission));
+
+  object = G_OBJECT (permission);
   g_object_freeze_notify (object);
 
   allowed = allowed != FALSE;
@@ -375,9 +386,7 @@ g_permission_get_property (GObject *object, guint prop_id,
 static void
 g_permission_init (GPermission *permission)
 {
-  permission->priv = G_TYPE_INSTANCE_GET_PRIVATE (permission,
-                                                  G_TYPE_PERMISSION,
-                                                  GPermissionPrivate);
+  permission->priv = g_permission_get_instance_private (permission);
 }
 
 static gboolean
@@ -464,6 +473,4 @@ g_permission_class_init (GPermissionClass *class)
                            P_("If calling g_permission_release() makes sense"),
                            FALSE,
                            G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
-
-  g_type_class_add_private (class, sizeof (GPermissionPrivate));
 }