fix leak, fix refcount error
This commit is contained in:
@@ -126,9 +126,17 @@ void
|
||||
sp_destroy_tile_cache(struct softpipe_tile_cache *tc)
|
||||
{
|
||||
uint pos;
|
||||
|
||||
for (pos = 0; pos < NUM_ENTRIES; pos++) {
|
||||
assert(tc->entries[pos].x < 0);
|
||||
//assert(tc->entries[pos].x < 0);
|
||||
}
|
||||
if (tc->surface) {
|
||||
pipe_surface_reference(&tc->surface, NULL);
|
||||
}
|
||||
if (tc->tex_surf) {
|
||||
pipe_surface_reference(&tc->tex_surf, NULL);
|
||||
}
|
||||
|
||||
FREE( tc );
|
||||
}
|
||||
|
||||
@@ -466,15 +474,12 @@ sp_get_cached_tile_tex(struct pipe_context *pipe,
|
||||
tc->tex_level != level ||
|
||||
tc->tex_z != z) {
|
||||
/* get new surface (view into texture) */
|
||||
struct pipe_surface *ps;
|
||||
|
||||
if (tc->tex_surf && tc->tex_surf->map)
|
||||
pipe_surface_unmap(tc->tex_surf);
|
||||
|
||||
ps = pipe->get_tex_surface(pipe, tc->texture, face, level, z);
|
||||
pipe_surface_reference(&tc->tex_surf, ps);
|
||||
|
||||
pipe_surface_map(ps);
|
||||
tc->tex_surf = pipe->get_tex_surface(pipe, tc->texture, face, level, z);
|
||||
pipe_surface_map(tc->tex_surf);
|
||||
|
||||
tc->tex_face = face;
|
||||
tc->tex_level = level;
|
||||
|
||||
Reference in New Issue
Block a user