[evolution-data-server] Bug #590574 - Do not allow hyphen in error names. Fixes memory leaks.
- From: Chenthill Palanisamy <pchen src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Bug #590574 - Do not allow hyphen in error names. Fixes memory leaks.
- Date: Thu, 20 Aug 2009 12:20:44 +0000 (UTC)
commit 97eefa11f406f5420dda3cfb96565b120e7c1942
Author: Chenthill Palanisamy <pchenthill novell com>
Date: Thu Aug 20 17:42:25 2009 +0530
Bug #590574 - Do not allow hyphen in error names. Fixes memory leaks.
addressbook/libedata-book/e-data-book.c | 41 ++++++++++++++++++++----------
addressbook/libedata-book/glib-gen.mak | 2 +-
2 files changed, 28 insertions(+), 15 deletions(-)
---
diff --git a/addressbook/libedata-book/e-data-book.c b/addressbook/libedata-book/e-data-book.c
index 4d770cf..920457e 100644
--- a/addressbook/libedata-book/e-data-book.c
+++ b/addressbook/libedata-book/e-data-book.c
@@ -56,6 +56,7 @@ static void impl_AddressBook_Book_close(EDataBook *book, DBusGMethodInvocation *
#include "e-data-book-glue.h"
static void return_status_and_list (guint32 opid, EDataBookStatus status, GList *list, gboolean free_data);
+static void data_book_return_error (DBusGMethodInvocation *context, gint code, const char *error_str);
enum {
WRITABLE,
@@ -298,7 +299,7 @@ e_data_book_respond_open (EDataBook *book, guint opid, EDataBookStatus status)
DBusGMethodInvocation *context = opid_fetch (opid);
if (status != E_DATA_BOOK_STATUS_SUCCESS) {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, status, _("Cannot open book")));
+ data_book_return_error (context, status, _("Cannot open book"));
} else {
dbus_g_method_return (context);
}
@@ -316,7 +317,7 @@ e_data_book_respond_remove (EDataBook *book, guint opid, EDataBookStatus status)
DBusGMethodInvocation *context = opid_fetch (opid);
if (status != E_DATA_BOOK_STATUS_SUCCESS) {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, status, _("Cannot remove book")));
+ data_book_return_error (context, status, _("Cannot remove book"));
} else {
dbus_g_method_return (context);
}
@@ -328,7 +329,7 @@ impl_AddressBook_Book_getContact (EDataBook *book, const char *IN_uid, DBusGMeth
OperationData *op;
if (IN_uid == NULL) {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND, _("Cannot get contact")));
+ data_book_return_error (context, E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND, _("Cannot get contact"));
return;
}
@@ -343,7 +344,7 @@ e_data_book_respond_get_contact (EDataBook *book, guint32 opid, EDataBookStatus
DBusGMethodInvocation *context = opid_fetch (opid);
if (status != E_DATA_BOOK_STATUS_SUCCESS) {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, status, _("Cannot get contact")));
+ data_book_return_error (context, status, _("Cannot get contact"));
} else {
dbus_g_method_return (context, vcard);
}
@@ -355,7 +356,7 @@ impl_AddressBook_Book_getContactList (EDataBook *book, const char *query, DBusGM
OperationData *op;
if (query == NULL || query[0] == '\0') {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_INVALID_QUERY, _("Empty query")));
+ data_book_return_error (context, E_DATA_BOOK_STATUS_INVALID_QUERY, _("Empty query"));
return;
}
@@ -382,13 +383,25 @@ impl_AddressBook_Book_authenticateUser(EDataBook *book, const char *IN_user, con
g_thread_pool_push (op_pool, op, NULL);
}
+
+static void
+data_book_return_error (DBusGMethodInvocation *context, gint code, const char *error_str)
+{
+ GError *error;
+
+ error = g_error_new (E_DATA_BOOK_ERROR, code, error_str) ;
+ dbus_g_method_return_error (context, error);
+
+ g_error_free (error);
+}
+
void
e_data_book_respond_authenticate_user (EDataBook *book, guint32 opid, EDataBookStatus status)
{
DBusGMethodInvocation *context = opid_fetch (opid);
if (status != E_DATA_BOOK_STATUS_SUCCESS) {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, status, _("Cannot authenticate user")));
+ data_book_return_error (context, status, _("Cannot authenticate user"));
} else {
dbus_g_method_return (context);
}
@@ -400,7 +413,7 @@ impl_AddressBook_Book_addContact (EDataBook *book, const char *IN_vcard, DBusGMe
OperationData *op;
if (IN_vcard == NULL || IN_vcard[0] == '\0') {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_INVALID_QUERY, _("Cannot add contact")));
+ data_book_return_error (context, E_DATA_BOOK_STATUS_INVALID_QUERY, _("Cannot add contact"));
return;
}
@@ -415,7 +428,7 @@ e_data_book_respond_create (EDataBook *book, guint32 opid, EDataBookStatus statu
DBusGMethodInvocation *context = opid_fetch (opid);
if (status != E_DATA_BOOK_STATUS_SUCCESS) {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, status, _("Cannot add contact")));
+ data_book_return_error (context, status, _("Cannot add contact"));
} else {
e_book_backend_notify_update (e_data_book_get_backend (book), contact);
e_book_backend_notify_complete (e_data_book_get_backend (book));
@@ -430,7 +443,7 @@ impl_AddressBook_Book_modifyContact (EDataBook *book, const char *IN_vcard, DBus
OperationData *op;
if (IN_vcard == NULL) {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_INVALID_QUERY, _("Cannot modify contact")));
+ data_book_return_error (context, E_DATA_BOOK_STATUS_INVALID_QUERY, _("Cannot modify contact"));
return;
}
@@ -445,7 +458,7 @@ e_data_book_respond_modify (EDataBook *book, guint32 opid, EDataBookStatus statu
DBusGMethodInvocation *context = opid_fetch (opid);
if (status != E_DATA_BOOK_STATUS_SUCCESS) {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, status, _("Cannot modify contact")));
+ data_book_return_error (context, status, _("Cannot modify contact"));
} else {
e_book_backend_notify_update (e_data_book_get_backend (book), contact);
e_book_backend_notify_complete (e_data_book_get_backend (book));
@@ -480,7 +493,7 @@ e_data_book_respond_remove_contacts (EDataBook *book, guint32 opid, EDataBookSta
DBusGMethodInvocation *context = opid_fetch (opid);
if (status != E_DATA_BOOK_STATUS_SUCCESS) {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, status, _("Cannot remove contacts")));
+ data_book_return_error (context, status, _("Cannot remove contacts"));
} else {
GList *i;
@@ -555,7 +568,7 @@ impl_AddressBook_Book_getBookView (EDataBook *book, const char *search, const gu
card_sexp = e_book_backend_sexp_new (search);
if (!card_sexp) {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, E_DATA_BOOK_STATUS_INVALID_QUERY, _("Invalid query")));
+ data_book_return_error (context, E_DATA_BOOK_STATUS_INVALID_QUERY, _("Invalid query"));
return;
}
@@ -584,7 +597,7 @@ e_data_book_respond_get_changes (EDataBook *book, guint32 opid, EDataBookStatus
DBusGMethodInvocation *context = opid_fetch (opid);
if (status != E_DATA_BOOK_STATUS_SUCCESS) {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, status, _("Cannot get changes")));
+ data_book_return_error (context, status, _("Cannot get changes"));
} else {
/* The DBus interface to this is a(us), an array of structs of unsigned ints
and strings. In dbus-glib this is a GPtrArray of GValueArray of unsigned
@@ -692,6 +705,6 @@ return_status_and_list (guint32 opid, EDataBookStatus status, GList *list, gbool
g_free (array);
}
} else {
- dbus_g_method_return_error (context, g_error_new (E_DATA_BOOK_ERROR, status, _("Cannot complete operation")));
+ data_book_return_error (context, status, _("Cannot complete operation"));
}
}
diff --git a/addressbook/libedata-book/glib-gen.mak b/addressbook/libedata-book/glib-gen.mak
index f510d80..7aae596 100644
--- a/addressbook/libedata-book/glib-gen.mak
+++ b/addressbook/libedata-book/glib-gen.mak
@@ -29,7 +29,7 @@
--fhead "#include <$*.h>\n#include \"$*-enumtypes.h\"" \
--fprod "\n/* enumerations from \"@filename \" */" \
--vhead "GType\n enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G Type@Value values[] = {" \
- --vprod " { @VALUENAME@, \"@VALUENAME \", \"@valuenick \" }," \
+ --vprod " { @VALUENAME@, \"@VALUENAME \", \"@VALUENAME \" }," \
--vtail " { 0, NULL, NULL }\n };\n etype = g_ type@_register_static (\"@EnumName \", values);\n }\n return etype;\n}\n" \
$^ > $@
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]