jclass jsjni_GetGlobalClassRef(const char *className) { if (NS_IsMainThread()) { return __jsjni_GetGlobalClassRef(className); } nsCOMPtr<nsIThread> mainThread; mozilla::DebugOnly<nsresult> rv = NS_GetMainThread(getter_AddRefs(mainThread)); MOZ_ASSERT(NS_SUCCEEDED(rv)); jclass foundClass; nsCOMPtr<nsIRunnable> runnable_ref(new GetGlobalClassRefRunnable(className, &foundClass)); nsRefPtr<mozilla::SyncRunnable> sr = new mozilla::SyncRunnable(runnable_ref); sr->DispatchToThread(mainThread); if (!foundClass) return nullptr; return foundClass; }
NS_IMETHOD Run() { *mResult = __jsjni_GetGlobalClassRef(mClassName); return NS_OK; }