rename API uc_mem_free() to uc_free(). see #662

This commit is contained in:
Nguyen Anh Quynh
2017-01-10 20:59:14 +08:00
parent 7512ff57de
commit bc569f5a54
11 changed files with 18 additions and 18 deletions

View File

@ -17,7 +17,7 @@ func (u *uc) ContextSave(reuse Context) (Context, error) {
if err := errReturn(C.uc_context_alloc(u.handle, ctx)); err != nil { if err := errReturn(C.uc_context_alloc(u.handle, ctx)); err != nil {
return nil, err return nil, err
} }
runtime.SetFinalizer(ctx, func(p Context) { C.uc_mem_free(*p) }) runtime.SetFinalizer(ctx, func(p Context) { C.uc_free(*p) })
if err := errReturn(C.uc_context_save(u.handle, *ctx)); err != nil { if err := errReturn(C.uc_context_save(u.handle, *ctx)); err != nil {
} }
return ctx, nil return ctx, nil

View File

@ -117,7 +117,7 @@ instance Storable MemoryRegion where
-- | Opaque storage for CPU context, used with the context functions. -- | Opaque storage for CPU context, used with the context functions.
{# pointer *uc_context as Context {# pointer *uc_context as Context
foreign finalizer uc_mem_free_wrapper as memFree foreign finalizer uc_free_wrapper as memFree
newtype newtype
#} #}
@ -125,7 +125,7 @@ instance Storable MemoryRegion where
{# pointer *uc_context as ContextPtr -> Context #} {# pointer *uc_context as ContextPtr -> Context #}
-- | Make a CPU context out of a context pointer. The returned CPU context will -- | Make a CPU context out of a context pointer. The returned CPU context will
-- automatically call 'uc_mem_free' when it goes out of scope. -- automatically call 'uc_free' when it goes out of scope.
mkContext :: ContextPtr mkContext :: ContextPtr
-> IO Context -> IO Context
mkContext ptr = mkContext ptr =

View File

@ -7,6 +7,6 @@ void uc_close_wrapper(uc_engine *uc) {
void uc_close_dummy(uc_engine *uc) { void uc_close_dummy(uc_engine *uc) {
} }
void uc_mem_free_wrapper(void *mem) { void uc_free_wrapper(void *mem) {
uc_mem_free(mem); uc_free(mem);
} }

View File

@ -14,8 +14,8 @@ void uc_close_wrapper(uc_engine *uc);
void uc_close_dummy(uc_engine *uc); void uc_close_dummy(uc_engine *uc);
/* /*
* Wrap Unicorn's uc_mem_free function and ignore the returned error code. * Wrap Unicorn's uc_free function and ignore the returned error code.
*/ */
void uc_mem_free_wrapper(void *context); void uc_free_wrapper(void *context);
#endif #endif

View File

@ -746,7 +746,7 @@ JNIEXPORT jlong JNICALL Java_unicorn_Unicorn_context_1alloc
*/ */
JNIEXPORT void JNICALL Java_unicorn_Unicorn_context_1free JNIEXPORT void JNICALL Java_unicorn_Unicorn_context_1free
(JNIEnv *env, jobject self, jlong ctx) { (JNIEnv *env, jobject self, jlong ctx) {
uc_err err = uc_mem_free((void *)ctx); uc_err err = uc_free((void *)ctx);
if (err != UC_ERR_OK) { if (err != UC_ERR_OK) {
throwException(env, err); throwException(env, err);
} }

View File

@ -126,7 +126,7 @@ _setup_prototype(_uc, "uc_mem_unmap", ucerr, uc_engine, ctypes.c_uint64, ctypes.
_setup_prototype(_uc, "uc_mem_protect", ucerr, uc_engine, ctypes.c_uint64, ctypes.c_size_t, ctypes.c_uint32) _setup_prototype(_uc, "uc_mem_protect", ucerr, uc_engine, ctypes.c_uint64, ctypes.c_size_t, ctypes.c_uint32)
_setup_prototype(_uc, "uc_query", ucerr, uc_engine, ctypes.c_uint32, ctypes.POINTER(ctypes.c_size_t)) _setup_prototype(_uc, "uc_query", ucerr, uc_engine, ctypes.c_uint32, ctypes.POINTER(ctypes.c_size_t))
_setup_prototype(_uc, "uc_context_alloc", ucerr, uc_engine, ctypes.POINTER(uc_context)) _setup_prototype(_uc, "uc_context_alloc", ucerr, uc_engine, ctypes.POINTER(uc_context))
_setup_prototype(_uc, "uc_mem_free", ucerr, ctypes.c_void_p) _setup_prototype(_uc, "uc_free", ucerr, ctypes.c_void_p)
_setup_prototype(_uc, "uc_context_save", ucerr, uc_engine, uc_context) _setup_prototype(_uc, "uc_context_save", ucerr, uc_engine, uc_context)
_setup_prototype(_uc, "uc_context_restore", ucerr, uc_engine, uc_context) _setup_prototype(_uc, "uc_context_restore", ucerr, uc_engine, uc_context)
@ -496,7 +496,7 @@ class SavedContext(object):
self.pointer = pointer self.pointer = pointer
def __del__(self): def __del__(self):
status = _uc.uc_mem_free(self.pointer) status = _uc.uc_free(self.pointer)
if status != uc.UC_ERR_OK: if status != uc.UC_ERR_OK:
raise UcError(status) raise UcError(status)

View File

@ -642,7 +642,7 @@ uc_err uc_mem_protect(uc_engine *uc, uint64_t address, size_t size, uint32_t per
@uc: handle returned by uc_open() @uc: handle returned by uc_open()
@regions: pointer to an array of uc_mem_region struct. This is allocated by @regions: pointer to an array of uc_mem_region struct. This is allocated by
Unicorn, and must be freed by user later with uc_mem_free() Unicorn, and must be freed by user later with uc_free()
@count: pointer to number of struct uc_mem_region contained in @regions @count: pointer to number of struct uc_mem_region contained in @regions
@return UC_ERR_OK on success, or other value on failure (refer to uc_err enum @return UC_ERR_OK on success, or other value on failure (refer to uc_err enum
@ -660,7 +660,7 @@ uc_err uc_mem_regions(uc_engine *uc, uc_mem_region **regions, uint32_t *count);
@uc: handle returned by uc_open() @uc: handle returned by uc_open()
@context: pointer to a uc_engine*. This will be updated with the pointer to @context: pointer to a uc_engine*. This will be updated with the pointer to
the new context on successful return of this function. the new context on successful return of this function.
Later, this allocated memory must be freed with uc_mem_free(). Later, this allocated memory must be freed with uc_free().
@return UC_ERR_OK on success, or other value on failure (refer to uc_err enum @return UC_ERR_OK on success, or other value on failure (refer to uc_err enum
for detailed error). for detailed error).
@ -678,7 +678,7 @@ uc_err uc_context_alloc(uc_engine *uc, uc_context **context);
for detailed error). for detailed error).
*/ */
UNICORN_EXPORT UNICORN_EXPORT
uc_err uc_mem_free(void *mem); uc_err uc_free(void *mem);
/* /*
Save a copy of the internal CPU context. Save a copy of the internal CPU context.

View File

@ -759,9 +759,9 @@ static void test_i386_context_save(void)
printf(">>> EAX = 0x%x\n", r_eax); printf(">>> EAX = 0x%x\n", r_eax);
// free the CPU context // free the CPU context
err = uc_mem_free(context); err = uc_free(context);
if (err) { if (err) {
printf("Failed on uc_mem_free() with error returned: %u\n", err); printf("Failed on uc_free() with error returned: %u\n", err);
return; return;
} }

View File

@ -32,7 +32,7 @@ int main(int argc, char **argv, char **envp) {
starts[i], regions[i].begin); starts[i], regions[i].begin);
} }
} }
uc_mem_free(regions); uc_free(regions);
} }
uc_close(uc); uc_close(uc);

View File

@ -800,7 +800,7 @@ static void test_i386_reg_save(void **state)
assert_int_equal(eax, 2); assert_int_equal(eax, 2);
// clean up; // clean up;
uc_mem_free(saved_context); uc_free(saved_context);
uc_assert_success(uc_close(uc)); uc_assert_success(uc_close(uc));
} }
/******************************************************************************/ /******************************************************************************/

2
uc.c
View File

@ -1193,7 +1193,7 @@ uc_err uc_context_alloc(uc_engine *uc, uc_context **context)
} }
UNICORN_EXPORT UNICORN_EXPORT
uc_err uc_mem_free(void *mem) uc_err uc_free(void *mem)
{ {
g_free(mem); g_free(mem);
return UC_ERR_OK; return UC_ERR_OK;