glsl/pp: Add `0' and `1' to dictionary.
authorMichal Krol <michal@vmware.com>
Wed, 23 Sep 2009 07:37:37 +0000 (09:37 +0200)
committerMichal Krol <michal@vmware.com>
Wed, 23 Sep 2009 07:37:37 +0000 (09:37 +0200)
src/glsl/pp/sl_pp_dict.c
src/glsl/pp/sl_pp_dict.h
src/glsl/pp/sl_pp_if.c

index f2885c763d7cf73c7dd95558cf40314335fc6594..0e1fa36857793da418afe4bfe20b02b49b7f4855 100644 (file)
@@ -79,5 +79,8 @@ sl_pp_dict_init(struct sl_pp_context *context)
 
    ADD_NAME(context, version);
 
+   ADD_NAME_STR(context, _0, "0");
+   ADD_NAME_STR(context, _1, "1");
+
    return 0;
 }
index ba82b389b23fa1fdc70cda0095f62554e82a7811..683752e000a973fb51c1520d642a6d65deed0620 100644 (file)
@@ -64,6 +64,9 @@ struct sl_pp_dict {
    int undef;
 
    int version;
+
+   int _0;
+   int _1;
 };
 
 
index 5fa27fcf053f78bc9bc1c56e7990f105f8be540a..c8e958eab493721c4dfd4d13bddd628f56aa27c2 100644 (file)
@@ -82,14 +82,7 @@ _parse_defined(struct sl_pp_context *context,
    }
 
    result.token = SL_PP_UINT;
-   if (defined) {
-      result.data._uint = sl_pp_context_add_unique_str(context, "1");
-   } else {
-      result.data._uint = sl_pp_context_add_unique_str(context, "0");
-   }
-   if (result.data._uint == -1) {
-      return -1;
-   }
+   result.data._uint = (defined ? context->dict._1 : context->dict._0);
 
    if (sl_pp_process_out(state, &result)) {
       strcpy(context->error_msg, "out of memory");