diff options
Diffstat (limited to 'libusb/core.c')
-rw-r--r-- | libusb/core.c | 9 |
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: |