ENH:Protect the bitmap

jira: STUDIO-13044
Change-Id: Ib3c3332db9f902e4829a5eea8039f17834b60be8
(cherry picked from commit 7110c01dc7219a808af0eb94af16f1fd02c6687b)
This commit is contained in:
zhou.xu
2025-07-02 20:01:17 +08:00
committed by Noisyfox
parent b0656fefbe
commit e389072544

View File

@@ -192,7 +192,7 @@ bool ComboBox::SetFont(wxFont const& font)
int ComboBox::Append(const wxString &item, const wxBitmap &bitmap, int style) int ComboBox::Append(const wxString &item, const wxBitmap &bitmap, int style)
{ {
if (bitmap.IsOk()) { if (&bitmap && bitmap.IsOk()) {
return Append(item, bitmap, nullptr, style); return Append(item, bitmap, nullptr, style);
} }
return Append(item, wxNullBitmap, nullptr, style); return Append(item, wxNullBitmap, nullptr, style);
@@ -203,7 +203,7 @@ int ComboBox::Append(const wxString &text,
void * clientData, void * clientData,
int style) int style)
{ {
if (bitmap.IsOk()) { if (&bitmap && bitmap.IsOk()) {
return Append(text, bitmap, wxString{}, clientData, style); return Append(text, bitmap, wxString{}, clientData, style);
} }
return Append(text, wxNullBitmap, wxString{}, clientData, style); return Append(text, wxNullBitmap, wxString{}, clientData, style);
@@ -211,7 +211,8 @@ int ComboBox::Append(const wxString &text,
int ComboBox::Append(const wxString &text, const wxBitmap &bitmap, const wxString &group, void *clientData, int style) int ComboBox::Append(const wxString &text, const wxBitmap &bitmap, const wxString &group, void *clientData, int style)
{ {
Item item{text, wxEmptyString, bitmap, bitmap, clientData, group }; auto valid_bit_map = (&bitmap && bitmap.IsOk()) ? bitmap : wxNullBitmap;
Item item{text, wxEmptyString, valid_bit_map, valid_bit_map, clientData, group};
item.style = style; item.style = style;
items.push_back(item); items.push_back(item);
SetClientDataType(wxClientData_Void); SetClientDataType(wxClientData_Void);
@@ -277,7 +278,7 @@ wxBitmap ComboBox::GetItemBitmap(unsigned int n) { return items[n].icon; }
void ComboBox::SetItemBitmap(unsigned int n, wxBitmap const &bitmap) void ComboBox::SetItemBitmap(unsigned int n, wxBitmap const &bitmap)
{ {
if (n >= items.size()) return; if (n >= items.size()) return;
items[n].icon = bitmap; items[n].icon = (&bitmap && bitmap.IsOk()) ? bitmap : wxNullBitmap;
drop.Invalidate(); drop.Invalidate();
} }