diff options
Diffstat (limited to 'src/mesa/state_tracker')
| -rw-r--r-- | src/mesa/state_tracker/st_cb_program.c | 9 | ||||
| -rw-r--r-- | src/mesa/state_tracker/st_context.c | 6 | 
2 files changed, 10 insertions, 5 deletions
| diff --git a/src/mesa/state_tracker/st_cb_program.c b/src/mesa/state_tracker/st_cb_program.c index 3154fc85aa..f951a928ea 100644 --- a/src/mesa/state_tracker/st_cb_program.c +++ b/src/mesa/state_tracker/st_cb_program.c @@ -89,8 +89,12 @@ static void st_use_program( GLcontext *ctx, +/** + * Called via ctx->Driver.NewProgram() to allocate a new vertex or + * fragment program. + */  static struct gl_program *st_new_program( GLcontext *ctx, -					  GLenum target,  +					  GLenum target,  					  GLuint id )  {     switch (target) { @@ -118,7 +122,8 @@ static struct gl_program *st_new_program( GLcontext *ctx,     }     default: -      return _mesa_new_program(ctx, target, id); +      assert(0); +      return NULL;     }  } diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index b407fd884b..4081722bc7 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -158,9 +158,6 @@ static void st_destroy_context_priv( struct st_context *st )  {     uint i; -   st_reference_fragprog(st, &st->fp, NULL); -   st_reference_vertprog(st, &st->vp, NULL); -     draw_destroy(st->draw);     st_destroy_atoms( st );     st_destroy_draw( st ); @@ -195,6 +192,9 @@ void st_destroy_context( struct st_context *st )     /* need to unbind and destroy CSO objects before anything else */     cso_release_all(st->cso_context); +   st_reference_fragprog(st, &st->fp, NULL); +   st_reference_vertprog(st, &st->vp, NULL); +     _mesa_delete_program_cache(st->ctx, st->pixel_xfer.cache);     _mesa_free_context_data(ctx); | 
