diff options
author | sbc <sbc@chromium.org> | 2014-09-25 09:23:53 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-25 16:24:07 +0000 |
commit | e3c6d9defedfec359fc3d7c69fd63fa36035e722 (patch) | |
tree | 5973467fda7d97e6a99d088eba257f0131a55542 /native_client_sdk | |
parent | 3695ffef35abf39c0ea4b38ea4ccfca7764a109a (diff) | |
download | chromium_src-e3c6d9defedfec359fc3d7c69fd63fa36035e722.zip chromium_src-e3c6d9defedfec359fc3d7c69fd63fa36035e722.tar.gz chromium_src-e3c6d9defedfec359fc3d7c69fd63fa36035e722.tar.bz2 |
[NaCl SDK]: nacl_io: add nacl_io_uninit function.
Call this function on program shut down to allow
nacl_io to free its resources. This fixes
all the "potential" leak reported by valgrind
--leak-check=full
Review URL: https://codereview.chromium.org/601963002
Cr-Commit-Position: refs/heads/master@{#296720}
Diffstat (limited to 'native_client_sdk')
-rw-r--r-- | native_client_sdk/src/libraries/nacl_io/nacl_io.cc | 4 | ||||
-rw-r--r-- | native_client_sdk/src/libraries/nacl_io/nacl_io.h | 8 | ||||
-rw-r--r-- | native_client_sdk/src/libraries/ppapi_simple/ps_main.cc | 4 |
3 files changed, 15 insertions, 1 deletions
diff --git a/native_client_sdk/src/libraries/nacl_io/nacl_io.cc b/native_client_sdk/src/libraries/nacl_io/nacl_io.cc index 1459ab1..b1134f1 100644 --- a/native_client_sdk/src/libraries/nacl_io/nacl_io.cc +++ b/native_client_sdk/src/libraries/nacl_io/nacl_io.cc @@ -12,6 +12,10 @@ void nacl_io_init() { ki_init(NULL); } +void nacl_io_uninit() { + ki_uninit(); +} + void nacl_io_init_ppapi(PP_Instance instance, PPB_GetInterface get_interface) { ki_init_ppapi(NULL, instance, get_interface); } diff --git a/native_client_sdk/src/libraries/nacl_io/nacl_io.h b/native_client_sdk/src/libraries/nacl_io/nacl_io.h index a26f39d..21abc34 100644 --- a/native_client_sdk/src/libraries/nacl_io/nacl_io.h +++ b/native_client_sdk/src/libraries/nacl_io/nacl_io.h @@ -51,6 +51,14 @@ void nacl_io_init(); */ void nacl_io_init_ppapi(PP_Instance instance, PPB_GetInterface get_interface); +/** + * Uninitialize nacl_io. + * + * This removes interception for POSIX C-library function and releases + * any associated resources. + */ +void nacl_io_uninit(); + void nacl_io_set_exit_callback(nacl_io_exit_callback_t exit_callback, void* user_data); diff --git a/native_client_sdk/src/libraries/ppapi_simple/ps_main.cc b/native_client_sdk/src/libraries/ppapi_simple/ps_main.cc index 3b634f9..8ab1213 100644 --- a/native_client_sdk/src/libraries/ppapi_simple/ps_main.cc +++ b/native_client_sdk/src/libraries/ppapi_simple/ps_main.cc @@ -43,5 +43,7 @@ int main(int argc, char* argv[]) { // By default, or if not running in the browser we simply run the main // entry point directly, on the main thread. nacl_io_init(); - return PSUserMainGet()(argc, argv); + int rtn = PSUserMainGet()(argc, argv); + nacl_io_uninit(); + return rtn; } |