diff options
Diffstat (limited to 'src/gallium')
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe_aaline.c | 8 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe_aapoint.c | 8 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe_clip.c | 6 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe_cull.c | 6 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe_flatshade.c | 6 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe_offset.c | 13 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe_pstipple.c | 13 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe_stipple.c | 13 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe_twoside.c | 6 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe_unfilled.c | 6 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe_wide_line.c | 13 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe_wide_point.c | 6 | 
12 files changed, 69 insertions, 35 deletions
| diff --git a/src/gallium/auxiliary/draw/draw_pipe_aaline.c b/src/gallium/auxiliary/draw/draw_pipe_aaline.c index 4faf0a779c..debd17fd74 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_aaline.c +++ b/src/gallium/auxiliary/draw/draw_pipe_aaline.c @@ -788,9 +788,6 @@ draw_aaline_stage(struct draw_context *draw)     if (aaline == NULL)        return NULL; -   if (!draw_alloc_temp_verts( &aaline->stage, 8 )) -      goto fail; -     aaline->stage.draw = draw;     aaline->stage.name = "aaline";     aaline->stage.next = NULL; @@ -801,11 +798,14 @@ draw_aaline_stage(struct draw_context *draw)     aaline->stage.reset_stipple_counter = aaline_reset_stipple_counter;     aaline->stage.destroy = aaline_destroy; +   if (!draw_alloc_temp_verts( &aaline->stage, 8 )) +      goto fail; +     return aaline;   fail:     if (aaline) -      aaline_destroy(&aaline->stage); +      aaline->stage.destroy(&aaline->stage);     return NULL;  } diff --git a/src/gallium/auxiliary/draw/draw_pipe_aapoint.c b/src/gallium/auxiliary/draw/draw_pipe_aapoint.c index bba6f50c02..d406a86ccb 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_aapoint.c +++ b/src/gallium/auxiliary/draw/draw_pipe_aapoint.c @@ -780,9 +780,6 @@ draw_aapoint_stage(struct draw_context *draw)     if (aapoint == NULL)        goto fail; -   if (!draw_alloc_temp_verts( &aapoint->stage, 4 )) -      goto fail; -     aapoint->stage.draw = draw;     aapoint->stage.name = "aapoint";     aapoint->stage.next = NULL; @@ -793,11 +790,14 @@ draw_aapoint_stage(struct draw_context *draw)     aapoint->stage.reset_stipple_counter = aapoint_reset_stipple_counter;     aapoint->stage.destroy = aapoint_destroy; +   if (!draw_alloc_temp_verts( &aapoint->stage, 4 )) +      goto fail; +     return aapoint;   fail:     if (aapoint) -      aapoint_destroy(&aapoint->stage); +      aapoint->stage.destroy(&aapoint->stage);     return NULL; diff --git a/src/gallium/auxiliary/draw/draw_pipe_clip.c b/src/gallium/auxiliary/draw/draw_pipe_clip.c index df8d82e367..122b1c7968 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_clip.c +++ b/src/gallium/auxiliary/draw/draw_pipe_clip.c @@ -522,9 +522,6 @@ struct draw_stage *draw_clip_stage( struct draw_context *draw )     if (clipper == NULL)        goto fail; -   if (!draw_alloc_temp_verts( &clipper->stage, MAX_CLIPPED_VERTICES+1 )) -      goto fail; -     clipper->stage.draw = draw;     clipper->stage.name = "clipper";     clipper->stage.point = clip_point; @@ -536,6 +533,9 @@ struct draw_stage *draw_clip_stage( struct draw_context *draw )     clipper->plane = draw->plane; +   if (!draw_alloc_temp_verts( &clipper->stage, MAX_CLIPPED_VERTICES+1 )) +      goto fail; +     return &clipper->stage;   fail: diff --git a/src/gallium/auxiliary/draw/draw_pipe_cull.c b/src/gallium/auxiliary/draw/draw_pipe_cull.c index bf84ce30ed..2f4d01d23a 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_cull.c +++ b/src/gallium/auxiliary/draw/draw_pipe_cull.c @@ -129,9 +129,6 @@ struct draw_stage *draw_cull_stage( struct draw_context *draw )     if (cull == NULL)        goto fail; -   if (!draw_alloc_temp_verts( &cull->stage, 0 )) -      goto fail; -     cull->stage.draw = draw;     cull->stage.name = "cull";     cull->stage.next = NULL; @@ -142,6 +139,9 @@ struct draw_stage *draw_cull_stage( struct draw_context *draw )     cull->stage.reset_stipple_counter = cull_reset_stipple_counter;     cull->stage.destroy = cull_destroy; +   if (!draw_alloc_temp_verts( &cull->stage, 0 )) +      goto fail; +     return &cull->stage;  fail: diff --git a/src/gallium/auxiliary/draw/draw_pipe_flatshade.c b/src/gallium/auxiliary/draw/draw_pipe_flatshade.c index 34afb1a0b6..693f2895aa 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_flatshade.c +++ b/src/gallium/auxiliary/draw/draw_pipe_flatshade.c @@ -257,9 +257,6 @@ struct draw_stage *draw_flatshade_stage( struct draw_context *draw )     if (flatshade == NULL)        goto fail; -   if (!draw_alloc_temp_verts( &flatshade->stage, 2 )) -      goto fail; -     flatshade->stage.draw = draw;     flatshade->stage.name = "flatshade";     flatshade->stage.next = NULL; @@ -270,6 +267,9 @@ struct draw_stage *draw_flatshade_stage( struct draw_context *draw )     flatshade->stage.reset_stipple_counter = flatshade_reset_stipple_counter;     flatshade->stage.destroy = flatshade_destroy; +   if (!draw_alloc_temp_verts( &flatshade->stage, 2 )) +      goto fail; +     return &flatshade->stage;   fail: diff --git a/src/gallium/auxiliary/draw/draw_pipe_offset.c b/src/gallium/auxiliary/draw/draw_pipe_offset.c index 8e321946ce..8afbbfa156 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_offset.c +++ b/src/gallium/auxiliary/draw/draw_pipe_offset.c @@ -161,9 +161,7 @@ struct draw_stage *draw_offset_stage( struct draw_context *draw )  {     struct offset_stage *offset = CALLOC_STRUCT(offset_stage);     if (offset == NULL) -      return NULL; - -   draw_alloc_temp_verts( &offset->stage, 3 ); +      goto fail;     offset->stage.draw = draw;     offset->stage.name = "offset"; @@ -175,5 +173,14 @@ struct draw_stage *draw_offset_stage( struct draw_context *draw )     offset->stage.reset_stipple_counter = offset_reset_stipple_counter;     offset->stage.destroy = offset_destroy; +   if (!draw_alloc_temp_verts( &offset->stage, 3 )) +      goto fail; +     return &offset->stage; + +fail: +   if (offset) +      offset->stage.destroy( &offset->stage ); + +   return NULL;  } diff --git a/src/gallium/auxiliary/draw/draw_pipe_pstipple.c b/src/gallium/auxiliary/draw/draw_pipe_pstipple.c index ef30db094f..fff960c7eb 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_pstipple.c +++ b/src/gallium/auxiliary/draw/draw_pipe_pstipple.c @@ -607,8 +607,8 @@ static struct pstip_stage *  draw_pstip_stage(struct draw_context *draw)  {     struct pstip_stage *pstip = CALLOC_STRUCT(pstip_stage); - -   draw_alloc_temp_verts( &pstip->stage, 8 ); +   if (pstip == NULL) +      goto fail;     pstip->stage.draw = draw;     pstip->stage.name = "pstip"; @@ -620,7 +620,16 @@ draw_pstip_stage(struct draw_context *draw)     pstip->stage.reset_stipple_counter = pstip_reset_stipple_counter;     pstip->stage.destroy = pstip_destroy; +   if (!draw_alloc_temp_verts( &pstip->stage, 8 )) +      goto fail; +     return pstip; + +fail: +   if (pstip) +      pstip->stage.destroy( &pstip->stage ); + +   return NULL;  } diff --git a/src/gallium/auxiliary/draw/draw_pipe_stipple.c b/src/gallium/auxiliary/draw/draw_pipe_stipple.c index 70fbab9ea7..4b3f4e7ae1 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_stipple.c +++ b/src/gallium/auxiliary/draw/draw_pipe_stipple.c @@ -235,8 +235,8 @@ stipple_destroy( struct draw_stage *stage )  struct draw_stage *draw_stipple_stage( struct draw_context *draw )  {     struct stipple_stage *stipple = CALLOC_STRUCT(stipple_stage); - -   draw_alloc_temp_verts( &stipple->stage, 2 ); +   if (stipple == NULL) +      goto fail;     stipple->stage.draw = draw;     stipple->stage.name = "stipple"; @@ -248,5 +248,14 @@ struct draw_stage *draw_stipple_stage( struct draw_context *draw )     stipple->stage.flush = stipple_flush;     stipple->stage.destroy = stipple_destroy; +   if (!draw_alloc_temp_verts( &stipple->stage, 2 )) +      goto fail; +     return &stipple->stage; + +fail: +   if (stipple) +      stipple->stage.destroy( &stipple->stage ); + +   return NULL;  } diff --git a/src/gallium/auxiliary/draw/draw_pipe_twoside.c b/src/gallium/auxiliary/draw/draw_pipe_twoside.c index 808b2fb0b5..9a3f3fee62 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_twoside.c +++ b/src/gallium/auxiliary/draw/draw_pipe_twoside.c @@ -177,9 +177,6 @@ struct draw_stage *draw_twoside_stage( struct draw_context *draw )     if (twoside == NULL)        goto fail; -   if (!draw_alloc_temp_verts( &twoside->stage, 3 )) -      goto fail; -     twoside->stage.draw = draw;     twoside->stage.name = "twoside";     twoside->stage.next = NULL; @@ -190,6 +187,9 @@ struct draw_stage *draw_twoside_stage( struct draw_context *draw )     twoside->stage.reset_stipple_counter = twoside_reset_stipple_counter;     twoside->stage.destroy = twoside_destroy; +   if (!draw_alloc_temp_verts( &twoside->stage, 3 )) +      goto fail; +     return &twoside->stage;   fail: diff --git a/src/gallium/auxiliary/draw/draw_pipe_unfilled.c b/src/gallium/auxiliary/draw/draw_pipe_unfilled.c index e333d26a93..d87741b91e 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_unfilled.c +++ b/src/gallium/auxiliary/draw/draw_pipe_unfilled.c @@ -202,9 +202,6 @@ struct draw_stage *draw_unfilled_stage( struct draw_context *draw )     if (unfilled == NULL)        goto fail; -   if (!draw_alloc_temp_verts( &unfilled->stage, 0 )) -      goto fail; -     unfilled->stage.draw = draw;     unfilled->stage.name = "unfilled";     unfilled->stage.next = NULL; @@ -216,6 +213,9 @@ struct draw_stage *draw_unfilled_stage( struct draw_context *draw )     unfilled->stage.reset_stipple_counter = unfilled_reset_stipple_counter;     unfilled->stage.destroy = unfilled_destroy; +   if (!draw_alloc_temp_verts( &unfilled->stage, 0 )) +      goto fail; +     return &unfilled->stage;   fail: diff --git a/src/gallium/auxiliary/draw/draw_pipe_wide_line.c b/src/gallium/auxiliary/draw/draw_pipe_wide_line.c index d7ac95b740..98da9cfb99 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_wide_line.c +++ b/src/gallium/auxiliary/draw/draw_pipe_wide_line.c @@ -202,8 +202,8 @@ static void wideline_destroy( struct draw_stage *stage )  struct draw_stage *draw_wide_line_stage( struct draw_context *draw )  {     struct wideline_stage *wide = CALLOC_STRUCT(wideline_stage); - -   draw_alloc_temp_verts( &wide->stage, 4 ); +   if (wide == NULL) +      goto fail;     wide->stage.draw = draw;     wide->stage.name = "wide-line"; @@ -215,5 +215,14 @@ struct draw_stage *draw_wide_line_stage( struct draw_context *draw )     wide->stage.reset_stipple_counter = wideline_reset_stipple_counter;     wide->stage.destroy = wideline_destroy; +   if (!draw_alloc_temp_verts( &wide->stage, 4 )) +      goto fail; +     return &wide->stage; + +fail: +   if (wide) +      wide->stage.destroy( &wide->stage ); + +   return NULL;  } diff --git a/src/gallium/auxiliary/draw/draw_pipe_wide_point.c b/src/gallium/auxiliary/draw/draw_pipe_wide_point.c index a86fe19586..3e6e538995 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_wide_point.c +++ b/src/gallium/auxiliary/draw/draw_pipe_wide_point.c @@ -324,9 +324,6 @@ struct draw_stage *draw_wide_point_stage( struct draw_context *draw )     if (wide == NULL)        goto fail; -   if (!draw_alloc_temp_verts( &wide->stage, 4 )) -      goto fail; -     wide->stage.draw = draw;     wide->stage.name = "wide-point";     wide->stage.next = NULL; @@ -337,6 +334,9 @@ struct draw_stage *draw_wide_point_stage( struct draw_context *draw )     wide->stage.reset_stipple_counter = widepoint_reset_stipple_counter;     wide->stage.destroy = widepoint_destroy; +   if (!draw_alloc_temp_verts( &wide->stage, 4 )) +      goto fail; +     return &wide->stage;   fail: | 
