mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-27 21:33:48 +02:00
Gtk3: safer way to free allocated data.
This commit is contained in:
parent
324cb06157
commit
51a8bb1b80
@ -542,7 +542,6 @@ type
|
||||
procedure SetListBoxStyle(AValue: TListBoxStyle);
|
||||
procedure SetMultiSelect(AValue: Boolean);
|
||||
protected
|
||||
procedure DestroyWidget; override;
|
||||
function CreateWidget(const {%H-}Params: TCreateParams):PGtkWidget; override;
|
||||
function EatArrowKeys(const {%H-}AKey: Word): Boolean; override;
|
||||
public
|
||||
@ -5408,6 +5407,12 @@ begin
|
||||
TGtk3Widget(AData).DeliverMessage(Msg, False);
|
||||
end;
|
||||
|
||||
procedure FreeStoreStringList(aData: gpointer); cdecl;
|
||||
begin
|
||||
TGtkListStoreStringList(aData).Free;
|
||||
end;
|
||||
|
||||
|
||||
function TGtk3ListBox.CreateWidget(const Params: TCreateParams): PGtkWidget;
|
||||
var
|
||||
AListBox: TCustomListBox;
|
||||
@ -5433,7 +5438,8 @@ begin
|
||||
g_object_unref (liststore);
|
||||
|
||||
ItemList := TGtkListStoreStringList.Create(PGtkListStore(PGtkTreeView(FCentralWidget)^.get_model), 0, LCLObject);
|
||||
g_object_set_data(PGObject(FCentralWidget),GtkListItemLCLListTag, ItemList);
|
||||
g_object_set_data_full(PGObject(FCentralWidget),GtkListItemLCLListTag, ItemList, @FreeStoreStringList);
|
||||
// g_object_set_data(PGObject(FCentralWidget),GtkListItemLCLListTag, ItemList);
|
||||
|
||||
Renderer := LCLIntfCellRenderer_New();
|
||||
|
||||
@ -5598,20 +5604,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TGtk3ListBox.DestroyWidget;
|
||||
var
|
||||
aData: TGtkListStoreStringList;
|
||||
begin
|
||||
if FCentralWidget <> nil then
|
||||
begin
|
||||
aData := TGtkListStoreStringList(g_object_get_data(PGObject(FCentralWidget),GtkListItemLCLListTag));
|
||||
if aData <> nil then
|
||||
aData.Free;
|
||||
g_object_set_data(PGObject(FCentralWidget),GtkListItemLCLListTag, nil);
|
||||
end;
|
||||
inherited DestroyWidget;
|
||||
end;
|
||||
|
||||
function TGtk3ListBox.GetSelCount: Integer;
|
||||
var
|
||||
Selection: PGtkTreeSelection;
|
||||
|
Loading…
Reference in New Issue
Block a user