Mercurial > pidgin
comparison src/module.c @ 4135:4927f8dd046f
[gaim-migrate @ 4353]
Memory leak fixes. Thanks Ari Pollak.
committer: Tailor Script <tailor@pidgin.im>
| author | Christian Hammond <chipx86@chipx86.com> |
|---|---|
| date | Tue, 24 Dec 2002 23:41:01 +0000 |
| parents | b359aab1c576 |
| children | 9c7fcb211886 |
comparison
equal
deleted
inserted
replaced
| 4134:c0f4c664e3ba | 4135:4927f8dd046f |
|---|---|
| 120 ) && g_module_supported()) { | 120 ) && g_module_supported()) { |
| 121 path = g_build_filename(probedirs[l], file, NULL); | 121 path = g_build_filename(probedirs[l], file, NULL); |
| 122 handle = g_module_open(path, 0); | 122 handle = g_module_open(path, 0); |
| 123 if (!handle) { | 123 if (!handle) { |
| 124 debug_printf("%s is unloadable: %s\n", file, g_module_error()); | 124 debug_printf("%s is unloadable: %s\n", file, g_module_error()); |
| 125 g_free(path); | |
| 125 continue; | 126 continue; |
| 126 } | 127 } |
| 127 if (g_module_symbol(handle, "gaim_prpl_init", (gpointer *)&gaim_prpl_init)) { | 128 if (g_module_symbol(handle, "gaim_prpl_init", (gpointer *)&gaim_prpl_init)) { |
| 128 plug = g_new0(struct gaim_plugin, 1); | 129 plug = g_new0(struct gaim_plugin, 1); |
| 129 g_snprintf(plug->path, sizeof(plug->path), path); | 130 g_snprintf(plug->path, sizeof(plug->path), path); |
| 134 gaim_prpl_init(new_prpl); | 135 gaim_prpl_init(new_prpl); |
| 135 if (new_prpl->protocol == PROTO_ICQ || | 136 if (new_prpl->protocol == PROTO_ICQ || |
| 136 find_prpl(new_prpl->protocol)) { | 137 find_prpl(new_prpl->protocol)) { |
| 137 /* Nothing to see here--move along, move along */ | 138 /* Nothing to see here--move along, move along */ |
| 138 unload_protocol(new_prpl); | 139 unload_protocol(new_prpl); |
| 140 g_free(path); | |
| 139 continue; | 141 continue; |
| 140 } | 142 } |
| 141 protocols = g_slist_insert_sorted(protocols, new_prpl, (GCompareFunc)proto_compare); | 143 protocols = g_slist_insert_sorted(protocols, new_prpl, (GCompareFunc)proto_compare); |
| 142 g_module_close(handle); | 144 g_module_close(handle); |
| 145 g_free(path); | |
| 143 continue; | 146 continue; |
| 144 } | 147 } |
| 145 | 148 |
| 146 if (!g_module_symbol(handle, "gaim_plugin_init", (gpointer *)&gaim_plugin_init)) { | 149 if (!g_module_symbol(handle, "gaim_plugin_init", (gpointer *)&gaim_plugin_init)) { |
| 147 debug_printf("%s is unloadable %s\n", file, g_module_error()); | 150 debug_printf("%s is unloadable %s\n", file, g_module_error()); |
| 148 g_module_close(handle); | 151 g_module_close(handle); |
| 152 g_free(path); | |
| 149 continue; | 153 continue; |
| 150 } | 154 } |
| 151 plug = g_new0(struct gaim_plugin, 1); | 155 plug = g_new0(struct gaim_plugin, 1); |
| 152 g_snprintf(plug->path, sizeof(plug->path), path); | 156 g_snprintf(plug->path, sizeof(plug->path), path); |
| 153 plug->type = plugin; | 157 plug->type = plugin; |
