projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
601969c
)
llvmpipe: fix double free
author
Keith Whitwell
<keithw@vmware.com>
Wed, 6 Jan 2010 17:13:37 +0000
(17:13 +0000)
committer
Keith Whitwell
<keithw@vmware.com>
Wed, 6 Jan 2010 17:13:37 +0000
(17:13 +0000)
src/gallium/drivers/llvmpipe/lp_context.c
patch
|
blob
|
history
src/gallium/drivers/llvmpipe/lp_setup.c
patch
|
blob
|
history
src/gallium/drivers/llvmpipe/lp_setup.h
patch
|
blob
|
history
src/gallium/drivers/llvmpipe/lp_setup_context.h
patch
|
blob
|
history
diff --git
a/src/gallium/drivers/llvmpipe/lp_context.c
b/src/gallium/drivers/llvmpipe/lp_context.c
index 0457ccc8a94167c4a1632ef3b69a6d755a5cf5f3..696a9d5f6a841c55557e55df36d8b94fdc010449 100644
(file)
--- a/
src/gallium/drivers/llvmpipe/lp_context.c
+++ b/
src/gallium/drivers/llvmpipe/lp_context.c
@@
-53,12
+53,11
@@
static void llvmpipe_destroy( struct pipe_context *pipe )
struct llvmpipe_context *llvmpipe = llvmpipe_context( pipe );
uint i;
+ /* This will also destroy llvmpipe->setup:
+ */
if (llvmpipe->draw)
draw_destroy( llvmpipe->draw );
- if (llvmpipe->setup)
- lp_setup_destroy( llvmpipe->setup );
-
for (i = 0; i < PIPE_MAX_COLOR_BUFS; i++) {
pipe_surface_reference(&llvmpipe->framebuffer.cbufs[i], NULL);
}
diff --git
a/src/gallium/drivers/llvmpipe/lp_setup.c
b/src/gallium/drivers/llvmpipe/lp_setup.c
index e2b21aed473966375f699304fa985689a424392e..1eb944a0de7901b88f1d1afd2da46a58eff5ebb6 100644
(file)
--- a/
src/gallium/drivers/llvmpipe/lp_setup.c
+++ b/
src/gallium/drivers/llvmpipe/lp_setup.c
@@
-571,7
+571,8
@@
lp_setup_update_state( struct setup_context *setup )
-
+/* Only caller is lp_setup_vbuf_destroy()
+ */
void
lp_setup_destroy( struct setup_context *setup )
{
diff --git
a/src/gallium/drivers/llvmpipe/lp_setup.h
b/src/gallium/drivers/llvmpipe/lp_setup.h
index a6120fcbe408df227fbe15900fc32f3be00705f7..bf12cb852717d9ec31d72234e1aa5364886189f1 100644
(file)
--- a/
src/gallium/drivers/llvmpipe/lp_setup.h
+++ b/
src/gallium/drivers/llvmpipe/lp_setup.h
@@
-128,7
+128,5
@@
void
lp_setup_set_vertex_info( struct setup_context *setup,
struct vertex_info *info );
-void
-lp_setup_destroy( struct setup_context *setup );
#endif
diff --git
a/src/gallium/drivers/llvmpipe/lp_setup_context.h
b/src/gallium/drivers/llvmpipe/lp_setup_context.h
index d2278a46e664ccb3f279b49e5f06bf61ec4eac43..a1808fcd4c0b2e2726dbfb7090e120f2b96d8ba4 100644
(file)
--- a/
src/gallium/drivers/llvmpipe/lp_setup_context.h
+++ b/
src/gallium/drivers/llvmpipe/lp_setup_context.h
@@
-141,4
+141,6
@@
void lp_setup_init_vbuf(struct setup_context *setup);
void lp_setup_update_state( struct setup_context *setup );
+void lp_setup_destroy( struct setup_context *setup );
+
#endif