devicescale: Panic on Android when called from init funcs

This commit is contained in:
Hajime Hoshi 2018-05-05 03:15:17 +09:00
parent d8dba69b47
commit 167d21ec46
2 changed files with 2 additions and 3 deletions

View File

@ -65,7 +65,7 @@ import (
func impl() float64 { func impl() float64 {
if !jni.IsJVMAvailable() { if !jni.IsJVMAvailable() {
return 0 panic("devicescale: JVM is not available yet: is this called from init funcitons?")
} }
s := 0.0 s := 0.0
if err := jni.RunOnJVM(func(vm, env, ctx uintptr) error { if err := jni.RunOnJVM(func(vm, env, ctx uintptr) error {

3
run.go
View File

@ -502,8 +502,7 @@ func SetWindowIcon(iconImages []image.Image) {
// DeviceScaleFactor returns a meaningful value on high-DPI display environment, // DeviceScaleFactor returns a meaningful value on high-DPI display environment,
// otherwise DeviceScaleFactor returns 1. // otherwise DeviceScaleFactor returns 1.
// //
// DeviceScaleFactor might return 0 on init function on some devices like Android. // DeviceScaleFactor might panic on init function on some devices like Android.
// Don't expect DeviceScaleFactor returns a valid value until main starts.
// Then, it is not recommended to call DeviceScaleFactor from init functions. // Then, it is not recommended to call DeviceScaleFactor from init functions.
// //
// DeviceScaleFactor is concurrent-safe. // DeviceScaleFactor is concurrent-safe.