- 论坛徽章:
- 0
|
本帖最后由 liexusong 于 2013-07-05 18:59 编辑
其实不算是bug, 只是觉得有点浪费内存而已, 代码如下:- int
- event_base_priority_init(struct event_base *base, int npriorities)
- {
- int i;
- if (base->event_count_active)
- return (-1);
- if (base->nactivequeues && npriorities != base->nactivequeues) {
- for (i = 0; i < base->nactivequeues; ++i) {
- free(base->activequeues[i]);
- }
- free(base->activequeues);
- }
- /* Allocate our priority queues */
- base->nactivequeues = npriorities;
- base->activequeues = (struct event_list **)calloc(base->nactivequeues,
- npriorities * sizeof(struct event_list *));
- if (base->activequeues == NULL)
- event_err(1, "%s: calloc", __func__);
- for (i = 0; i < base->nactivequeues; ++i) {
- base->activequeues[i] = malloc(sizeof(struct event_list));
- if (base->activequeues[i] == NULL)
- event_err(1, "%s: malloc", __func__);
- TAILQ_INIT(base->activequeues[i]);
- }
- return (0);
- }
复制代码 在第18行:
base->activequeues = (struct event_list **)calloc(base->nactivequeues,
npriorities * sizeof(struct event_list *));
我觉得应该改为:
base->activequeues = (struct event_list **)calloc(base->nactivequeues,
sizeof(struct event_list *)); |
|