summaryrefslogtreecommitdiffstats
path: root/native_client_sdk
diff options
context:
space:
mode:
authorsbc <sbc@chromium.org>2014-09-25 09:23:53 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-25 16:24:07 +0000
commite3c6d9defedfec359fc3d7c69fd63fa36035e722 (patch)
tree5973467fda7d97e6a99d088eba257f0131a55542 /native_client_sdk
parent3695ffef35abf39c0ea4b38ea4ccfca7764a109a (diff)
downloadchromium_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.cc4
-rw-r--r--native_client_sdk/src/libraries/nacl_io/nacl_io.h8
-rw-r--r--native_client_sdk/src/libraries/ppapi_simple/ps_main.cc4
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;
}