Re: [Evolution-hackers] [CAMEL] CamelFolder *_getv() - What should it do?
- From: Jules Colding <colding omesc com>
- To: sparthasarathi novell com
- Cc: Evolution Hackers <evolution-hackers gnome org>
- Subject: Re: [Evolution-hackers] [CAMEL] CamelFolder *_getv() - What should it do?
- Date: Mon, 14 Nov 2005 13:41:20 +0100
Hi,
On Mon, 2005-10-17 at 16:48 +0530, Parthasarathi Susarla wrote:
> On Mon, 2005-10-17 at 13:04 +0200, Jules Colding wrote:
> > Hi,
> >
> > I can see several providers implementing a *_getv() method. It seems
> > that it just provides a descriptive name of the folder in question. Is
> > that correct?
> It does a lot more than that. getv provides info based on the type of
> argument that we require to know about. This would include Total count,
> Unread count, flags, full name.....
>
> check the 'folder_getv' method in camel-folder.c. The implementation is
> clear enough
Looking at folder_getv() raises memory handling questions. See e.g:
########### snip #############
case CAMEL_FOLDER_ARG_NAME:
*arg->ca_str = folder->name;
break;
case CAMEL_FOLDER_ARG_UID_ARRAY: {
int j;
CamelMessageInfo *info;
GPtrArray *array;
count = camel_folder_summary_count(folder->summary);
array = g_ptr_array_new();
g_ptr_array_set_size(array, count);
for (j=0; j<count; j++) {
if ((info = camel_folder_summary_index(folder->summary, j))) {
array->pdata[i] = g_strdup(camel_message_info_uid(info));
camel_message_info_free(info);
}
}
*arg->ca_ptr = array;
break; }
########### snip #############
arg->ca_ptr must be freed while folder->name is managed by the folder
instance. Whom is responsible for freeing the GPtrArray ?
Thanks,
jules
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]