aboutsummaryrefslogtreecommitdiff
path: root/subhook.c
diff options
context:
space:
mode:
authorZeex <zeex@rocketmail.com>2013-01-15 03:57:07 +0700
committerZeex <zeex@rocketmail.com>2013-01-15 03:57:07 +0700
commit75f746195d54a90480431c42b126bb9be952bfd8 (patch)
tree192b9ff0a516aaebd1b7e4d33b8bee2710fca31b /subhook.c
parent8347e1a37008e2ae73e97080c4e8455fd2213815 (diff)
downloadsubhook-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.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/subhook.c b/subhook.c
index 6c23b17..9a96ea5 100644
--- a/subhook.c
+++ b/subhook.c
@@ -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);
}