diff options
author | Yuchen Zeng <zyc@google.com> | 2016-08-26 17:27:32 -0700 |
---|---|---|
committer | Yuchen Zeng <zyc@google.com> | 2016-08-26 17:27:32 -0700 |
commit | d0725d711b031b58cb5e5b84659ac0de17329302 (patch) | |
tree | 35d594d930e4d27705b84e9b0a37695307f8c039 /src | |
parent | 03a75d30a6205b96d406ed06a7a9c6fd20c8e7dd (diff) |
Avoid unnecessary mallocs
Diffstat (limited to 'src')
-rw-r--r-- | src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c | 8 |
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); } } |