# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1620800242 0 # Node ID 822f814a54f494cb5449f89be76cd9ed8bdfaa91 # Parent 1b3b40c89cd0cabcb2be9939b6801af5cdb6c81f Android: Fix memory corruption issue due to incorrectly allocating HPIXMAP. Also call DWRender.invalidate() from the main thread incase it wants to cause an immediate onDraw() ... but we don't need to wait for it. diff -r 1b3b40c89cd0 -r 822f814a54f4 android/DWindows.kt --- a/android/DWindows.kt Tue May 11 22:53:29 2021 +0000 +++ b/android/DWindows.kt Wed May 12 06:17:22 2021 +0000 @@ -1835,7 +1835,9 @@ fun renderRedraw(render: DWRender) { - render.invalidate() + runOnUiThread { + render.invalidate() + } } fun pixmapBitBlt(dstr: DWRender?, dstp: Bitmap?, dstx: Int, dsty: Int, dstw: Int, dsth: Int, diff -r 1b3b40c89cd0 -r 822f814a54f4 android/dw.cpp --- a/android/dw.cpp Tue May 11 22:53:29 2021 +0000 +++ b/android/dw.cpp Wed May 12 06:17:22 2021 +0000 @@ -3433,7 +3433,7 @@ if(jbitmap) { - HPIXMAP pixmap = (HPIXMAP)calloc(1, sizeof(HPIXMAP)); + HPIXMAP pixmap = (HPIXMAP)calloc(1, sizeof(struct _hpixmap)); if(pixmap) { @@ -3464,7 +3464,7 @@ if(jbitmap) { - HPIXMAP pixmap = (HPIXMAP)calloc(1, sizeof(HPIXMAP)); + HPIXMAP pixmap = (HPIXMAP)calloc(1, sizeof(struct _hpixmap)); if(pixmap) { @@ -3494,7 +3494,7 @@ if(jbitmap) { - HPIXMAP pixmap = (HPIXMAP)calloc(1, sizeof(HPIXMAP)); + HPIXMAP pixmap = (HPIXMAP)calloc(1, sizeof(struct _hpixmap)); if(pixmap) { @@ -3535,7 +3535,7 @@ if(jbitmap) { - HPIXMAP pixmap = (HPIXMAP)calloc(1, sizeof(HPIXMAP)); + HPIXMAP pixmap = (HPIXMAP)calloc(1, sizeof(struct _hpixmap)); if(pixmap) {