summaryrefslogtreecommitdiffstats
path: root/libmsi/libmsi-record.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2012-12-11 22:18:16 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2013-01-09 13:56:06 +0100
commitf0b2662c42d6c0d4ed27eed1d4d5eb86cc5ffb29 (patch)
tree5caba3aca55578fa19e5c84533c16ccb380c6caf /libmsi/libmsi-record.c
parent5fe3c5109cf2ecd77dd40173f491722689d5af27 (diff)
downloadmsitools-f0b2662c42d6c0d4ed27eed1d4d5eb86cc5ffb29.tar.gz
msitools-f0b2662c42d6c0d4ed27eed1d4d5eb86cc5ffb29.tar.xz
msitools-f0b2662c42d6c0d4ed27eed1d4d5eb86cc5ffb29.zip
record: make API more GObject like
Use TRUE for success. GErrors doesn't seem useful for LibmsiRecord.
Diffstat (limited to 'libmsi/libmsi-record.c')
-rw-r--r--libmsi/libmsi-record.c80
1 files changed, 37 insertions, 43 deletions
diff --git a/libmsi/libmsi-record.c b/libmsi/libmsi-record.c
index b472318..cc5c2aa 100644
--- a/libmsi/libmsi-record.c
+++ b/libmsi/libmsi-record.c
@@ -71,13 +71,13 @@ _libmsi_free_field (LibmsiField *field )
static void
libmsi_record_finalize (GObject *object)
{
- LibmsiRecord *p = LIBMSI_RECORD (object);
+ LibmsiRecord *self = LIBMSI_RECORD (object);
unsigned i;
- for (i = 0; i <= p->count; i++ )
- _libmsi_free_field (&p->fields[i]);
+ for (i = 0; i <= self->count; i++ )
+ _libmsi_free_field (&self->fields[i]);
- g_free (p->fields);
+ g_free (self->fields);
G_OBJECT_CLASS (libmsi_record_parent_class)->finalize (object);
}
@@ -86,11 +86,11 @@ static void
libmsi_record_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
g_return_if_fail (LIBMSI_IS_RECORD (object));
- LibmsiRecord *p = LIBMSI_RECORD (object);
+ LibmsiRecord *self = LIBMSI_RECORD (object);
switch (prop_id) {
case PROP_COUNT:
- p->count = g_value_get_uint (value);
+ self->count = g_value_get_uint (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -102,11 +102,11 @@ static void
libmsi_record_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
{
g_return_if_fail (LIBMSI_IS_RECORD (object));
- LibmsiRecord *p = LIBMSI_RECORD (object);
+ LibmsiRecord *self = LIBMSI_RECORD (object);
switch (prop_id) {
case PROP_COUNT:
- g_value_set_uint (value, p->count);
+ g_value_set_uint (value, self->count);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -118,10 +118,9 @@ static void
libmsi_record_constructed (GObject *object)
{
LibmsiRecord *self = LIBMSI_RECORD (object);
- LibmsiRecord *p = self;
// FIXME: +1 could be removed if accessing with idx-1
- p->fields = g_new0 (LibmsiField, p->count + 1);
+ self->fields = g_new0 (LibmsiField, self->count + 1);
G_OBJECT_CLASS (libmsi_record_parent_class)->constructed (object);
}
@@ -142,12 +141,12 @@ libmsi_record_class_init (LibmsiRecordClass *klass)
G_PARAM_STATIC_STRINGS));
}
-unsigned libmsi_record_get_field_count( const LibmsiRecord *rec )
+guint
+libmsi_record_get_field_count (const LibmsiRecord *self)
{
- if( !rec )
- return -1;
+ g_return_val_if_fail (LIBMSI_IS_RECORD (self), 0);
- return rec->count;
+ return self->count;
}
static bool expr_int_from_string( const char *str, int *out )
@@ -216,11 +215,12 @@ unsigned _libmsi_record_copy_field( LibmsiRecord *in_rec, unsigned in_n,
return r;
}
-int libmsi_record_get_int( const LibmsiRecord *rec, unsigned field)
+gint
+libmsi_record_get_int (const LibmsiRecord *rec, guint field)
{
int ret = 0;
- TRACE("%p %d\n", rec, field);
+ g_return_val_if_fail (LIBMSI_IS_RECORD (rec), LIBMSI_NULL_INT);
if( !rec )
return LIBMSI_NULL_INT;
@@ -243,14 +243,13 @@ int libmsi_record_get_int( const LibmsiRecord *rec, unsigned field)
return LIBMSI_NULL_INT;
}
-LibmsiResult libmsi_record_clear( LibmsiRecord *rec )
+gboolean libmsi_record_clear( LibmsiRecord *rec )
{
unsigned i;
- TRACE("%d\n", rec );
+ g_return_val_if_fail (LIBMSI_IS_RECORD (rec), FALSE);
- if( !rec )
- return LIBMSI_RESULT_INVALID_HANDLE;
+ TRACE("%p\n", rec );
g_object_ref(rec);
for( i=0; i<=rec->count; i++)
@@ -261,24 +260,23 @@ LibmsiResult libmsi_record_clear( LibmsiRecord *rec )
}
g_object_unref(rec);
- return LIBMSI_RESULT_SUCCESS;
+ return TRUE;
}
-LibmsiResult libmsi_record_set_int( LibmsiRecord *rec, unsigned field, int iVal )
+gboolean libmsi_record_set_int( LibmsiRecord *rec, unsigned field, int iVal )
{
TRACE("%p %u %d\n", rec, field, iVal);
- if( !rec )
- return LIBMSI_RESULT_INVALID_HANDLE;
+ g_return_val_if_fail (LIBMSI_IS_RECORD (rec), FALSE);
if( field > rec->count )
- return LIBMSI_RESULT_INVALID_PARAMETER;
+ return FALSE;
_libmsi_free_field( &rec->fields[field] );
rec->fields[field].type = LIBMSI_FIELD_TYPE_INT;
rec->fields[field].u.iVal = iVal;
- return LIBMSI_RESULT_SUCCESS;
+ return TRUE;
}
gboolean libmsi_record_is_null( const LibmsiRecord *rec, unsigned field )
@@ -287,8 +285,7 @@ gboolean libmsi_record_is_null( const LibmsiRecord *rec, unsigned field )
TRACE("%p %d\n", rec, field );
- if( !rec )
- return 0;
+ g_return_val_if_fail (LIBMSI_IS_RECORD (rec), TRUE);
r = ( field > rec->count ) ||
( rec->fields[field].type == LIBMSI_FIELD_TYPE_NULL );
@@ -375,17 +372,16 @@ unsigned _libmsi_record_get_string(const LibmsiRecord *rec, unsigned field,
return ret;
}
-LibmsiResult libmsi_record_set_string( LibmsiRecord *rec, unsigned field, const char *szValue )
+gboolean libmsi_record_set_string( LibmsiRecord *rec, unsigned field, const char *szValue )
{
char *str;
- TRACE("%d %d %s\n", rec, field, debugstr_a(szValue));
+ TRACE("%p %d %s\n", rec, field, debugstr_a(szValue));
- if( !rec )
- return LIBMSI_RESULT_INVALID_HANDLE;
+ g_return_val_if_fail (LIBMSI_IS_RECORD (rec), FALSE);
if( field > rec->count )
- return LIBMSI_RESULT_INVALID_FIELD;
+ return FALSE;
_libmsi_free_field( &rec->fields[field] );
@@ -401,7 +397,7 @@ LibmsiResult libmsi_record_set_string( LibmsiRecord *rec, unsigned field, const
rec->fields[field].u.szVal = NULL;
}
- return 0;
+ return TRUE;
}
/* read the data in a file into a memory-backed GsfInput */
@@ -490,20 +486,19 @@ unsigned _libmsi_record_load_stream_from_file(LibmsiRecord *rec, unsigned field,
return LIBMSI_RESULT_SUCCESS;
}
-LibmsiResult libmsi_record_load_stream(LibmsiRecord *rec, unsigned field, const char *szFilename)
+gboolean libmsi_record_load_stream(LibmsiRecord *rec, unsigned field, const char *szFilename)
{
unsigned ret;
- TRACE("%d %d %s\n", rec, field, debugstr_a(szFilename));
+ TRACE("%p %d %s\n", rec, field, debugstr_a(szFilename));
- if( !rec )
- return LIBMSI_RESULT_INVALID_HANDLE;
+ g_return_val_if_fail (LIBMSI_IS_RECORD (rec), FALSE);
g_object_ref(rec);
ret = _libmsi_record_load_stream_from_file( rec, field, szFilename );
g_object_unref(rec);
- return ret;
+ return ret == LIBMSI_RESULT_SUCCESS;
}
unsigned _libmsi_record_save_stream(const LibmsiRecord *rec, unsigned field, char *buf, unsigned *sz)
@@ -555,20 +550,19 @@ unsigned _libmsi_record_save_stream(const LibmsiRecord *rec, unsigned field, cha
return LIBMSI_RESULT_SUCCESS;
}
-LibmsiResult libmsi_record_save_stream(LibmsiRecord *rec, unsigned field, char *buf, unsigned *sz)
+gboolean libmsi_record_save_stream(LibmsiRecord *rec, unsigned field, char *buf, unsigned *sz)
{
unsigned ret;
TRACE("%d %d %p %p\n", rec, field, buf, sz);
- if( !rec )
- return LIBMSI_RESULT_INVALID_HANDLE;
+ g_return_val_if_fail (LIBMSI_IS_RECORD (rec), FALSE);
g_object_ref(rec);
ret = _libmsi_record_save_stream( rec, field, buf, sz );
g_object_unref(rec);
- return ret;
+ return ret == LIBMSI_RESULT_SUCCESS;
}
unsigned _libmsi_record_set_gsf_input( LibmsiRecord *rec, unsigned field, GsfInput *stm )