summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Rousseau <rousseau@debian.org>2010-06-21 10:19:29 +0200
committerPete Batard <pbatard@gmail.com>2010-07-29 11:19:17 +0100
commit65faf2142660f2956079d8c14a474d79118b1e1f (patch)
tree901512990c3de4e309fc8c1700fba3ac6ea44f8c
parent68052b337173d2271a640226ceb79e6e5cd21731 (diff)
downloadlibusb-65faf2142660f2956079d8c14a474d79118b1e1f.tar.gz
Only initialize the default context when it is requested
-rw-r--r--libusb/core.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libusb/core.c b/libusb/core.c
index d0d3b4e..28f9ddb 100644
--- a/libusb/core.c
+++ b/libusb/core.c
@@ -1533,10 +1533,15 @@ API_EXPORTED int LIBUSB_API libusb_init(libusb_context **context)
goto err;
}
+ if (context) {
+ *context = ctx;
+ } else if (!usbi_default_context) {
+ usbi_dbg("created default context");
+ usbi_default_context = ctx;
+ default_context_refcnt++;
+ }
usbi_mutex_static_unlock(&default_context_lock);
- if (context)
- *context = ctx;
return 0;
err: