Re: [Vala] correct char ** binding
- From: Jan Spurny <JSpurny seznam cz>
- To: vala-list gnome org
- Subject: Re: [Vala] correct char ** binding
- Date: Tue, 8 Mar 2011 17:57:58 +0100
Hi Frederik,
'out string' will not work - that was the first thing I tried - problem is that if I would have used 'out
string' in 'setup' function, the generated C code will pass some temporary variable to 'setup' and not the
location of the required location. That is the reason why I've included that long explanation how it works.
Maybe I was not clear enough, so let me explain again:
1) 'setup' functions takes 'location' of 'char*' destionation variable and stores it along with 'name' in
'SomeParser' structure
2) 'run' then does the parsing and fills all locations described by their names by previous 'setup' calls
3) now all destionations registered with 'setup' are filled
or I can use some pseudo-C-code to explain better how that parser works:
------------------------------------------
typedef struct {
CoolStringMap map;
} SomeParser;
void some_parser_setup(SomeParser *self, char *name, char **location)
{
cool_map_set(self->map, name, location);
}
void some_parser_run(SomeParser *self)
{
...
for (name, location) in self->map {
char *str = strdup(cool_parser_get_value(name));
*location = str;
}
...
}
------------------------------------------
Another thing - I know that 'char *' is 'string', but why 'string a_str = a;' does not work?
Jan Spurny
On Tue, 08 Mar 2011 17:26:52 +0100 (CET)
Frederik <scumm_fredo gmx net> wrote:
'char *' is 'string'
'char **' ist 'out string' in your case.
Best regards,
Frederik
_______________________________________________
vala-list mailing list
vala-list gnome org
http://mail.gnome.org/mailman/listinfo/vala-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]