Fix crash in wxImage::Paste() when using images without alpha

Check for the presence of alpha channel before using it in the fallback
code.

Also add a unit test exercising this branch of the code and which
crashed before.
This commit is contained in:
Hartwig
2020-10-05 18:17:16 +02:00
committed by Vadim Zeitlin
parent d58f9bea72
commit 728f2f958f
2 changed files with 8 additions and 3 deletions

View File

@@ -1786,13 +1786,14 @@ wxImage::Paste(const wxImage & image, int x, int y,
{
// Copy the non masked pixel
memcpy(target_data + i, source_data + i, 3);
// Make the copied pixel fully opaque
alpha_target_data[i / 3] = wxALPHA_OPAQUE;
if (alpha_target_data != NULL) // Make the copied pixel fully opaque
alpha_target_data[i / 3] = wxALPHA_OPAQUE;
}
}
source_data += source_step;
target_data += target_step;
alpha_target_data += target_alpha_step;
if (alpha_target_data != NULL)
alpha_target_data += target_alpha_step;
}
}
}