summaryrefslogtreecommitdiff
path: root/libusb/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'libusb/core.c')
-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: