aboutsummaryrefslogtreecommitdiff
path: root/vendor/gioui.org/app/internal/log/log_android.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gioui.org/app/internal/log/log_android.go')
-rw-r--r--vendor/gioui.org/app/internal/log/log_android.go24
1 files changed, 15 insertions, 9 deletions
diff --git a/vendor/gioui.org/app/internal/log/log_android.go b/vendor/gioui.org/app/internal/log/log_android.go
index 7936911..1245598 100644
--- a/vendor/gioui.org/app/internal/log/log_android.go
+++ b/vendor/gioui.org/app/internal/log/log_android.go
@@ -40,16 +40,22 @@ type androidLogWriter struct {
}
func (w *androidLogWriter) Write(data []byte) (int, error) {
- // Truncate the buffer, leaving space for the '\0'.
- if max := len(w.buf) - 1; len(data) > max {
- data = data[:max]
+ n := 0
+ for len(data) > 0 {
+ msg := data
+ // Truncate the buffer, leaving space for the '\0'.
+ if max := len(w.buf) - 1; len(msg) > max {
+ msg = msg[:max]
+ }
+ buf := w.buf[:len(msg)+1]
+ copy(buf, msg)
+ // Terminating '\0'.
+ buf[len(msg)] = 0
+ C.__android_log_write(C.ANDROID_LOG_INFO, logTag, (*C.char)(unsafe.Pointer(&buf[0])))
+ n += len(msg)
+ data = data[len(msg):]
}
- buf := w.buf[:len(data)+1]
- copy(buf, data)
- // Terminating '\0'.
- buf[len(data)] = 0
- C.__android_log_write(C.ANDROID_LOG_INFO, logTag, (*C.char)(unsafe.Pointer(&buf[0])))
- return len(data), nil
+ return n, nil
}
func logFd(fd uintptr) {