Skip to content

Commit

Permalink
Remove some duplicate code in kqueue.c and fix a small memory leak.
Browse files Browse the repository at this point in the history
svn:r1483
  • Loading branch information
nmathewson committed Oct 30, 2009
1 parent 96c6956 commit 315fde1
Showing 1 changed file with 15 additions and 10 deletions.
25 changes: 15 additions & 10 deletions kqueue.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ struct kqop {
pid_t pid;
};

static void kqop_free(struct kqop *kqop);

static void *kq_init (struct event_base *);
static int kq_add (struct event_base *, int, short, short, void *);
static int kq_del (struct event_base *, int, short, short, void *);
Expand Down Expand Up @@ -167,13 +169,9 @@ kq_init(struct event_base *base)

return (kqueueop);
err:
if (kqueueop->changes)
mm_free(kqueueop->changes);
if (kqueueop->pend_changes)
mm_free(kqueueop->pend_changes);
if (kq >= 0)
close(kq);
mm_free(kqueueop);
if (kqueueop)
kqop_free(kqueueop);

return (NULL);
}

Expand Down Expand Up @@ -390,12 +388,12 @@ kq_del(struct event_base *base, int fd, short old, short events, void *p)
}

static void
kq_dealloc(struct event_base *base)
kqop_free(struct kqop *kqop)
{
struct kqop *kqop = base->evbase;

if (kqop->changes)
mm_free(kqop->changes);
if (kqop->pend_changes)
mm_free(kqop->pend_changes);
if (kqop->events)
mm_free(kqop->events);
if (kqop->kq >= 0 && kqop->pid == getpid())
Expand All @@ -404,6 +402,13 @@ kq_dealloc(struct event_base *base)
mm_free(kqop);
}

static void
kq_dealloc(struct event_base *base)
{
struct kqop *kqop = base->evbase;
kqop_free(kqop);
}

/* signal handling */
static int
kq_sig_add(struct event_base *base, int nsignal, short old, short events, void *p)
Expand Down

0 comments on commit 315fde1

Please sign in to comment.