help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-smalltalk] VisualGST


From: Gwenaël Casaccio
Subject: Re: [Help-smalltalk] VisualGST
Date: Mon, 13 Sep 2010 17:15:10 +0200

arg it seems I don't free the memory :D
may be a alloca should be better

On Mon, Sep 13, 2010 at 5:02 PM, Gwenaël Casaccio <address@hidden> wrote:
> Hi,
>
> Here is the patch to fix the bug with the parse_and_send_attribute and
> allow it to parse attributes with more than one arg ;-)
>
> static mst_Boolean
> parse_and_send_attribute (gst_parser *p, OOP receiverOOP)
> {
>  OOP selectorOOP, *args;
>  tree_node keyword, value, stmt;
>  int i, nb = 0;
>
> #if 0
>  printf ("parse attribute\n");
> #endif
>  lex_skip_mandatory (p, '<');
>  keyword = parse_keyword_expression (p, NULL, EXPR_KEYWORD);
>
>  selectorOOP = _gst_compute_keyword_selector (keyword->v_expr.expression);
>  nb = _gst_selector_num_args (selectorOOP);
>  args = malloc (sizeof (*args) * nb);
>  i = 0;
>  for (stmt = keyword->v_expr.expression; stmt; stmt =
> stmt->v_list.next)
>    {
>      value = stmt->v_list.value;
>      value = _gst_make_statement_list (&value->location, value);
>      args[i] = _gst_execute_statements (NULL, value, UNDECLARED_NONE, true);
>      if (!args[i])
>        {
>          _gst_had_error = true;
>          break ;
>        }
>      i = i + 1;
>    }
>
>  if (!_gst_had_error)
>      _gst_nvmsg_send (receiverOOP, selectorOOP, args, i);
>
>  lex_skip_mandatory (p, '>');
>  return !_gst_had_error;
> }
>
> Gwen
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]