Use TAKE_OBJ_NOTNULL and plug minor leaks - also appeases Flexelint

parent 3084655d
......@@ -536,7 +536,7 @@ vdp_fini(struct vdp_ctx *ctx, void **priv)
AN(priv);
if (*priv == NULL)
return (0);
CAST_OBJ(state, *priv, PIPE_VDP_STATE_MAGIC);
TAKE_OBJ_NOTNULL(state, priv, PIPE_VDP_STATE_MAGIC);
CHECK_OBJ_NOTNULL(state->obj, PIPE_VDP_MAGIC);
AN(state->obj->name);
AN(state->obj->path);
......@@ -594,8 +594,11 @@ vmod_event(VRT_CTX, struct vmod_priv *priv, enum vcl_event_e e)
}
static void
vdp_obj_free(VRT_CTX, struct VPFX(pipe_vdp) *vdp_obj)
vdp_obj_free(VRT_CTX, struct VPFX(pipe_vdp) **vdp_objp)
{
struct VPFX(pipe_vdp) *vdp_obj;
TAKE_OBJ_NOTNULL(vdp_obj, vdp_objp, PIPE_VDP_MAGIC);
free(vdp_obj->argv);
if (ctx != NULL && vdp_obj->vdp != NULL)
VRT_RemoveFilter(ctx, NULL, vdp_obj->vdp);
......@@ -673,7 +676,7 @@ vmod_vdp__init(VRT_CTX, struct VPFX(pipe_vdp) **vdpp, const char *obj_name,
if (vdp == NULL) {
VDPFAIL(ctx, "new %s: cannot allocate space for VDP: %s",
obj_name, VAS_errtxt(errno));
vdp_obj_free(NULL, vdp_obj);
vdp_obj_free(NULL, &vdp_obj);
return;
}
vdp->name = strdup(vdp_name);
......@@ -681,19 +684,19 @@ vmod_vdp__init(VRT_CTX, struct VPFX(pipe_vdp) **vdpp, const char *obj_name,
vdp->bytes = vdp_bytes;
vdp->fini = vdp_fini;
// XXX free mem etc
vdp_obj->vdp = vdp;
if (VRT_AddFilter(ctx, NULL, vdp)) {
vdp_obj_free(NULL, vdp_obj);
vdp_obj_free(NULL, &vdp_obj);
return;
}
vdp_obj->vdp = vdp;
errno = 0;
ALLOC_OBJ(map, PIPE_VDP_MAP_MAGIC);
if (map == NULL) {
VDPFAIL(ctx, "new %s: cannot allocate space for map entry: %s",
obj_name, VAS_errtxt(errno));
vdp_obj_free(ctx, vdp_obj);
vdp_obj_free(ctx, &vdp_obj);
return;
}
......@@ -703,7 +706,7 @@ vmod_vdp__init(VRT_CTX, struct VPFX(pipe_vdp) **vdpp, const char *obj_name,
VDPFAIL(ctx, "new %s: cannot allocate argv: %s", obj_name,
VAS_errtxt(errno));
FREE_OBJ(map);
vdp_obj_free(ctx, vdp_obj);
vdp_obj_free(ctx, &vdp_obj);
return;
}
vdp_obj->argv[0] = vdp_obj->path;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment