slang: Handle OOM condition in new_instruction().
[mesa.git] / src / mesa / shader / slang / slang_print.c
index 0840a0e2f6db7fdc8c085f9c31a3b2d28b3bd38e..98c7877534feb5be6ffee78c29c7f2953ee65b4a 100644 (file)
@@ -261,6 +261,7 @@ slang_print_tree(const slang_operation *op, int indent)
       break;
 
    case SLANG_OPER_BLOCK_NEW_SCOPE:
+   case SLANG_OPER_NON_INLINED_CALL:
       spaces(indent);
       printf("{{ // new scope  locals=%p outer=%p: ",
              (void *) op->locals,
@@ -278,7 +279,7 @@ slang_print_tree(const slang_operation *op, int indent)
       assert(op->num_children == 0 || op->num_children == 1);
       {
          slang_variable *v;
-         v = _slang_locate_variable(op->locals, op->a_id, GL_TRUE);
+         v = _slang_variable_locate(op->locals, op->a_id, GL_TRUE);
          if (v) {
             const slang_variable_scope *scope;
             spaces(indent);
@@ -348,6 +349,13 @@ slang_print_tree(const slang_operation *op, int indent)
          slang_print_tree(&op->children[0], indent + 3);
       break;
 
+   case SLANG_OPER_RETURN_INLINED:
+      spaces(indent);
+      printf("RETURN_INLINED\n");
+      if (op->num_children > 0)
+         slang_print_tree(&op->children[0], indent + 3);
+      break;
+
    case SLANG_OPER_LABEL:
       spaces(indent);
       printf("LABEL %s\n", (char *) op->a_id);
@@ -379,7 +387,7 @@ slang_print_tree(const slang_operation *op, int indent)
    case SLANG_OPER_WHILE:
       assert(op->num_children == 2);
       spaces(indent);
-      printf("WHILE LOOP: locals = %p\n", op->locals);
+      printf("WHILE LOOP: locals = %p\n", (void *) op->locals);
       indent += 3;
       spaces(indent);
       printf("WHILE cond:\n");
@@ -394,7 +402,7 @@ slang_print_tree(const slang_operation *op, int indent)
 
    case SLANG_OPER_DO:
       spaces(indent);
-      printf("DO LOOP: locals = %p\n", op->locals);
+      printf("DO LOOP: locals = %p\n", (void *) op->locals);
       indent += 3;
       spaces(indent);
       printf("DO body:\n");
@@ -409,7 +417,7 @@ slang_print_tree(const slang_operation *op, int indent)
 
    case SLANG_OPER_FOR:
       spaces(indent);
-      printf("FOR LOOP: locals = %p\n", op->locals);
+      printf("FOR LOOP: locals = %p\n", (void *) op->locals);
       indent += 3;
       spaces(indent);
       printf("FOR init:\n");
@@ -478,7 +486,7 @@ slang_print_tree(const slang_operation *op, int indent)
                    (void *) scope,
                    (void *) op->locals,
                    (void *) op->locals->outer_scope);
-            assert(scope);
+            /*assert(scope);*/
          }
       }
       break;
@@ -636,7 +644,7 @@ slang_print_tree(const slang_operation *op, int indent)
    case SLANG_OPER_CALL:
 #if 0
          slang_function *fun
-            = _slang_locate_function(A->space.funcs, oper->a_id,
+            = _slang_function_locate(A->space.funcs, oper->a_id,
                                      oper->children,
                                      oper->num_children, &A->space, A->atoms);
 #endif
@@ -653,6 +661,11 @@ slang_print_tree(const slang_operation *op, int indent)
       printf(")\n");
       break;
 
+   case SLANG_OPER_METHOD:
+      spaces(indent);
+      printf("METHOD CALL %s.%s\n", (char *) op->a_obj, (char *) op->a_id);
+      break;
+
    case SLANG_OPER_FIELD:
       spaces(indent);
       printf("FIELD %s of\n", (char*) op->a_id);