aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Yuchen Zeng <zyc@google.com>2016-08-26 17:27:32 -0700
committerGravatar Yuchen Zeng <zyc@google.com>2016-08-26 17:27:32 -0700
commitd0725d711b031b58cb5e5b84659ac0de17329302 (patch)
tree35d594d930e4d27705b84e9b0a37695307f8c039 /src
parent03a75d30a6205b96d406ed06a7a9c6fd20c8e7dd (diff)
Avoid unnecessary mallocs
Diffstat (limited to 'src')
-rw-r--r--src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c b/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c
index 188fc5f95f..6300ed3d70 100644
--- a/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c
+++ b/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c
@@ -134,18 +134,21 @@ void grpc_ares_notify_on_event(grpc_exec_ctx *exec_ctx,
ares_getsock(ev_driver->channel, ev_driver->socks, ARES_GETSOCK_MAXNUM);
grpc_closure_init(&ev_driver->driver_closure, driver_cb, ev_driver);
for (i = 0; i < ARES_GETSOCK_MAXNUM; i++) {
- char *fd_name;
- gpr_asprintf(&fd_name, "ares_ev_driver-%" PRIuPTR, i);
if (ARES_GETSOCK_READABLE(ev_driver->bitmask, i) ||
ARES_GETSOCK_WRITABLE(ev_driver->bitmask, i)) {
fd_pair *fdp = get_fd(&ev_driver->fds, ev_driver->socks[i]);
if (!fdp) {
+ char *fd_name;
+ gpr_asprintf(&fd_name, "ares_ev_driver-%" PRIuPTR, i);
+
fdp = gpr_malloc(sizeof(fd_pair));
fdp->grpc_fd = grpc_fd_create(ev_driver->socks[i], fd_name);
fdp->fd = ev_driver->socks[i];
grpc_pollset_set_add_fd(exec_ctx, ev_driver->pollset_set,
fdp->grpc_fd);
+
+ gpr_free(fd_name);
}
fdp->next = new_list;
new_list = fdp;
@@ -159,7 +162,6 @@ void grpc_ares_notify_on_event(grpc_exec_ctx *exec_ctx,
&ev_driver->driver_closure);
}
}
- gpr_free(fd_name);
}
}