diff options
author | Zeex <zeex@rocketmail.com> | 2013-01-15 03:57:07 +0700 |
---|---|---|
committer | Zeex <zeex@rocketmail.com> | 2013-01-15 03:57:07 +0700 |
commit | 75f746195d54a90480431c42b126bb9be952bfd8 (patch) | |
tree | 192b9ff0a516aaebd1b7e4d33b8bee2710fca31b /subhook.c | |
parent | 8347e1a37008e2ae73e97080c4e8455fd2213815 (diff) | |
download | subhook-75f746195d54a90480431c42b126bb9be952bfd8.zip subhook-75f746195d54a90480431c42b126bb9be952bfd8.tar.gz subhook-75f746195d54a90480431c42b126bb9be952bfd8.tar.bz2 |
Move arch initialization/cleanup to subhook_arch_{new,free}
Diffstat (limited to 'subhook.c')
-rw-r--r-- | subhook.c | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -29,11 +29,21 @@ #include "subhook_private.h" SUBHOOK_EXPORT struct subhook *SUBHOOK_API subhook_new() { - return (struct subhook *)calloc(1, sizeof(struct subhook)); + struct subhook *hook; + + if ((hook = (struct subhook *)calloc(1, sizeof(struct subhook))) == NULL) + return NULL; + + if (subhook_arch_new(hook) < 0) { + free(hook); + return NULL; + } + + return hook; } SUBHOOK_EXPORT void SUBHOOK_API subhook_free(struct subhook *hook) { - free(hook->arch); + subhook_arch_free(hook); free(hook); } |