mutter/cogl
Neil Roberts 94bcb4429b cogl-vertex-buffer: Use a ref count on the pipeline private data
The pipeline private data is accessed both from the private data set
on a CoglPipeline and the destroy notify function of a weak material
that the vertex buffer creates when it needs to override the wrap
mode. However when a CoglPipeline is destroyed, the CoglObject code
first removes all of the private data set on the object and then the
CoglPipeline code gets invoked to destroy all of the weak children. At
this point the vertex buffer's weak override destroy notify function
will get invoked and try to use the private data which has already
been freed causing a crash.

This patch instead adds a reference count to the pipeline private data
stuct so that we can avoid freeing it until both the private data on
the pipeline has been destroyed and all of the weak materials are
destroyed.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2544
2011-02-01 18:47:05 +00:00
..
driver cogl-buffer: Support mapping buffers for write on GLES 2011-01-13 16:36:45 +00:00
tesselator
winsys cogl: call _cogl_texture_init for x11 tfp 2011-01-21 18:58:58 +00:00
cogl2-path.c cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl2-path.h
cogl-atlas-texture-private.h Allow multiple CoglAtlases for textures 2010-12-13 18:59:41 +00:00
cogl-atlas-texture.c cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00:00
cogl-atlas.c Allow multiple CoglAtlases for textures 2010-12-13 18:59:41 +00:00
cogl-atlas.h Allow multiple CoglAtlases for textures 2010-12-13 18:59:41 +00:00
cogl-attribute-private.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-attribute.c cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00:00
cogl-attribute.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-bitmap-fallback.c
cogl-bitmap-pixbuf.c cogl: Don't assume that CoglBitmaps are allocated to height*rowstride 2011-01-10 16:55:01 +00:00
cogl-bitmap-private.h cogl: Don't assume that CoglBitmaps are allocated to height*rowstride 2011-01-10 16:55:01 +00:00
cogl-bitmap.c cogl-texture: Don't use the source rowstride if we have to copy bitmap 2011-01-10 16:54:58 +00:00
cogl-bitmap.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-bitmask.c cogl-vertex-attribute: Use glVertexAttribPointer on GLES2 2010-12-13 17:28:29 +00:00
cogl-bitmask.h cogl-vertex-attribute: Use glVertexAttribPointer on GLES2 2010-12-13 17:28:29 +00:00
cogl-blend-string.c cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00:00
cogl-blend-string.h
cogl-buffer-private.h cogl: Fallback to set_data when mapping a buffer to fill it 2011-01-13 16:36:32 +00:00
cogl-buffer.c cogl-buffer: Support mapping buffers for write on GLES 2011-01-13 16:36:45 +00:00
cogl-buffer.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-callback-list.c
cogl-callback-list.h
cogl-clip-stack.c cogl-clip-stack: Fix flushing multiple stencil rectangles 2011-01-24 17:40:07 +00:00
cogl-clip-stack.h clip-stack: Adds _cogl_clip_stack_get_bounds API 2011-01-21 16:18:10 +00:00
cogl-clip-state.c clip: rename get_clip_stack + add framebuffer_get_stack 2011-01-21 16:18:10 +00:00
cogl-clip-state.h clip: rename get_clip_stack + add framebuffer_get_stack 2011-01-21 16:18:10 +00:00
cogl-color-private.h pipeline: Implements _cogl_pipeline_hash function 2010-12-07 16:00:32 +00:00
cogl-color.c
cogl-color.h
cogl-context.c cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00:00
cogl-context.h journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-debug-options.h cogl-debug: Add a debug option for tracing clipping 2011-01-24 17:39:48 +00:00
cogl-debug.c cogl-debug: Add a debug option for tracing clipping 2011-01-24 17:39:48 +00:00
cogl-debug.h cogl-debug: Add a debug option for tracing clipping 2011-01-24 17:39:48 +00:00
cogl-defines.h.in
cogl-deprecated.h
cogl-enum-types.c.in
cogl-enum-types.h.in
cogl-feature-private.c
cogl-feature-private.h
cogl-fixed.c Fixed "the the" repetitions in some doc strings 2010-11-25 18:18:51 +00:00
cogl-fixed.h
cogl-framebuffer-private.h cogl: Implements a software only read-pixel fast-path 2011-01-21 16:18:11 +00:00
cogl-framebuffer.c framebuffer: flush journal when switching framebuffers 2011-01-24 18:53:08 +00:00
cogl-gtype-private.h matrix gtype: registers a boxed type for CoglMatrix 2010-12-07 12:16:50 +00:00
cogl-handle.h
cogl-index-array-private.h
cogl-index-array.c cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-index-array.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-indices-private.h indices: Makes cogl_indices_get_array public 2010-11-19 13:27:30 +00:00
cogl-indices.c indices: Makes cogl_indices_get_array public 2010-11-19 13:27:30 +00:00
cogl-indices.h indices: Makes cogl_indices_get_array public 2010-11-19 13:27:30 +00:00
cogl-internal.h cogl-vertex-attribute: Use glVertexAttribPointer on GLES2 2010-12-13 17:28:29 +00:00
cogl-journal-private.h cogl: Implements a software only read-pixel fast-path 2011-01-21 16:18:11 +00:00
cogl-journal.c cogl-debug: Add a debug option for tracing clipping 2011-01-24 17:39:48 +00:00
cogl-material-compat.c
cogl-material-compat.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-matrix-mesa.c
cogl-matrix-mesa.h
cogl-matrix-private.h cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00:00
cogl-matrix-stack.c cogl: upload matrices with uniforms on GLES2 2010-12-13 17:29:13 +00:00
cogl-matrix-stack.h cogl: upload matrices with uniforms on GLES2 2010-12-13 17:29:13 +00:00
cogl-matrix.c cogl-matrix: Get rid of the *_packed variants 2011-02-01 13:18:43 +00:00
cogl-matrix.h matrix gtype: registers a boxed type for CoglMatrix 2010-12-07 12:16:50 +00:00
cogl-object-private.h cogl-object: Adds an internal _cogl_object_set_user_data 2011-01-21 16:18:10 +00:00
cogl-object.c cogl-object: Adds an internal _cogl_object_set_user_data 2011-01-21 16:18:10 +00:00
cogl-object.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-offscreen.h Add some more introspection annotations 2010-09-06 16:11:46 +01:00
cogl-path-private.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-path.c
cogl-path.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-pipeline-fragend-arbfp-private.h Rename CoglPipelineBackend to CoglPipelineFragend 2010-12-13 17:22:57 +00:00
cogl-pipeline-fragend-arbfp.c cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00:00
cogl-pipeline-fragend-fixed-private.h Rename CoglPipelineBackend to CoglPipelineFragend 2010-12-13 17:22:57 +00:00
cogl-pipeline-fragend-fixed.c cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00:00
cogl-pipeline-fragend-glsl-private.h cogl: Add a GLSL 'progend' 2010-12-13 17:22:57 +00:00
cogl-pipeline-fragend-glsl.c pipeline: differentiate texture target and data state 2011-01-13 12:23:33 +00:00
cogl-pipeline-opengl-private.h cogl-pipeline: Move texture enabling/disabling to fixed fragend 2010-12-13 17:22:57 +00:00
cogl-pipeline-opengl.c cogl-pipeline: Flush the lighting params in common code not vertend 2011-01-24 12:09:11 +00:00
cogl-pipeline-private.h journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-pipeline-progend-glsl-private.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-pipeline-progend-glsl.c cogl-pipeline-progend-glsl: Generalize updating GLES2 uniforms 2011-01-24 12:09:11 +00:00
cogl-pipeline-vertend-fixed-private.h cogl: Add a fixed function vertend 2010-12-13 17:22:57 +00:00
cogl-pipeline-vertend-fixed.c cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00:00
cogl-pipeline-vertend-glsl-private.h cogl: Add a vertend to generate GLSL 2010-12-13 17:28:28 +00:00
cogl-pipeline-vertend-glsl.c pipeline: differentiate texture target and data state 2011-01-13 12:23:33 +00:00
cogl-pipeline.c cogl-pipeline: Fix comparing the color in set_layer_combine_constant 2011-02-01 17:50:10 +00:00
cogl-pipeline.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-pixel-array-private.h
cogl-pixel-array.c Remove the GLES2 wrapper 2010-12-13 17:29:14 +00:00
cogl-pixel-array.h
cogl-point-in-poly-private.h cogl: Adds _cogl_util_point_in_polygon API 2011-01-21 16:18:11 +00:00
cogl-point-in-poly.c cogl: Adds _cogl_util_point_in_polygon API 2011-01-21 16:18:11 +00:00
cogl-primitive-private.h
cogl-primitive.c cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-primitive.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-primitives-private.h
cogl-primitives.c cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-primitives.h
cogl-private.h Add an internal _cogl_read_pixels_with_rowstride 2010-11-24 15:56:34 +00:00
cogl-profile.c cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00:00
cogl-profile.h
cogl-program-private.h cogl-program: Add private functions to check if have each shader type 2010-12-13 17:22:57 +00:00
cogl-program.c cogl-program: Don't use separate definitions on GLES 1.1 2011-01-17 12:56:58 +00:00
cogl-rectangle-map.c cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00:00
cogl-rectangle-map.h
cogl-shader-boilerplate.h cogl-shader-boilerplate: Move the uniforms to the common code 2011-01-24 12:09:11 +00:00
cogl-shader-private.h Revert "cogl: Remove the generated array size for cogl_tex_coord_in" 2010-12-03 15:27:17 +00:00
cogl-shader.c cogl-debug: Split the flags to support more than 32 2011-01-24 15:45:45 +00:00
cogl-shader.h
cogl-spans.c
cogl-spans.h
cogl-sub-texture-private.h
cogl-sub-texture.c journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-texture-2d-private.h
cogl-texture-2d-sliced-private.h
cogl-texture-2d-sliced.c journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-texture-2d.c journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-texture-3d-private.h
cogl-texture-3d.c journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-texture-3d.h
cogl-texture-driver.h
cogl-texture-private.h journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-texture-rectangle-private.h
cogl-texture-rectangle.c journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-texture.c journal: Support per-framebuffer journals 2011-01-21 16:18:10 +00:00
cogl-texture.h
cogl-types.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-util.c cogl-util: Add an internal wrapper for the ffs function 2011-01-10 16:55:00 +00:00
cogl-util.h cogl-util: Add an internal wrapper for the ffs function 2011-01-10 16:55:00 +00:00
cogl-vector.c
cogl-vector.h
cogl-vertex-array-private.h
cogl-vertex-array.c vertex-array: Adds data arg for _vertex_array_new() 2010-11-19 13:27:30 +00:00
cogl-vertex-array.h docs: Fixes for the Cogl API reference 2010-12-22 09:52:35 +00:00
cogl-vertex-buffer-private.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl-vertex-buffer.c cogl-vertex-buffer: Use a ref count on the pipeline private data 2011-02-01 18:47:05 +00:00
cogl-vertex-buffer.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl.c cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl.h cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
cogl.pc.in
Makefile.am cogl: rename CoglVertexAttribute CoglAttribute 2011-01-21 16:24:14 +00:00
stb_image.c