OSDN Git Service

glcpp: Factor out a tiny bit of repeated code.
authorCarl Worth <cworth@cworth.org>
Wed, 28 Nov 2012 20:03:50 +0000 (12:03 -0800)
committerCarl Worth <cworth@cworth.org>
Thu, 29 Nov 2012 21:03:01 +0000 (13:03 -0800)
This function is getting a little long too read. Simplify it by pulling
up one assignment from every condition.

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/glsl/glcpp/glcpp-parse.y

index d928044..5b322fa 100644 (file)
@@ -1528,6 +1528,7 @@ _glcpp_parser_expand_node (glcpp_parser_t *parser,
                return NULL;
        }
 
+       *last = node;
        identifier = token->value.str;
 
        /* Special handling for __LINE__ and __FILE__, (not through
@@ -1541,7 +1542,6 @@ _glcpp_parser_expand_node (glcpp_parser_t *parser,
                                            node->token->location.first_line);
                _token_list_append (replacement, value);
 
-               *last = node;
                return replacement;
        }
 
@@ -1554,7 +1554,6 @@ _glcpp_parser_expand_node (glcpp_parser_t *parser,
                                            node->token->location.source);
                _token_list_append (replacement, value);
 
-               *last = node;
                return replacement;
        }
 
@@ -1579,14 +1578,12 @@ _glcpp_parser_expand_node (glcpp_parser_t *parser,
                final = _token_create_str (parser, OTHER, str);
                expansion = _token_list_create (parser);
                _token_list_append (expansion, final);
-               *last = node;
                return expansion;
        }
 
        if (! macro->is_function)
        {
                token_list_t *replacement;
-               *last = node;
 
                /* Replace a macro defined as empty with a SPACE token. */
                if (macro->replacements == NULL)