Skip to content

Commit df4c867

Browse files
committed
SIGSEGV in Tree.cellDataProc when calling TreeItem.setImage eclipse-platform#678
Added code formatting changed to match the formatting of the rest of the SWT code.
1 parent d00d394 commit df4c867

File tree

1 file changed

+30
-30
lines changed
  • bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets

1 file changed

+30
-30
lines changed

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4319,17 +4319,17 @@ void checkSetDataInProcessBeforeRemoval() {
43194319
}
43204320
}
43214321

4322-
boolean initPixbufSize(Image image) {
4322+
boolean initPixbufSize (Image image) {
43234323
if (pixbufSizeSet || image == null) {
43244324
return false;
43254325
}
43264326
int iWidth, iHeight;
4327-
if (DPIUtil.useCairoAutoScale()) {
4328-
iWidth = image.getBounds().width;
4329-
iHeight = image.getBounds().height;
4327+
if (DPIUtil.useCairoAutoScale ()) {
4328+
iWidth = image.getBounds ().width;
4329+
iHeight = image.getBounds ().height;
43304330
} else {
4331-
iWidth = image.getBoundsInPixels().width;
4332-
iHeight = image.getBoundsInPixels().height;
4331+
iWidth = image.getBoundsInPixels ().width;
4332+
iHeight = image.getBoundsInPixels ().height;
43334333
}
43344334
if (iWidth <= 0 || iHeight <= 0) {
43354335
return false;
@@ -4344,51 +4344,51 @@ boolean initPixbufSize(Image image) {
43444344
* the first image is set. Fix for bug 480261.
43454345
*/
43464346
if ((style & SWT.VIRTUAL) != 0) {
4347-
resetFixedRowHeight();
4347+
resetFixedRowHeight ();
43484348
}
43494349
return true;
43504350
}
43514351

4352-
private void resetFixedRowHeight() {
4353-
long columnList = GTK.gtk_tree_view_get_columns(handle);
4352+
private void resetFixedRowHeight () {
4353+
long columnList = GTK.gtk_tree_view_get_columns (handle);
43544354
if (columnList == 0) {
43554355
return;
43564356
}
43574357

43584358
// set fixed width and height for all GtkCellRendererPixbufs
4359-
for (var colItem = columnList; colItem != 0; colItem = OS.g_list_next(colItem)) {
4360-
long column = OS.g_list_data(colItem);
4361-
var cellList = GTK.gtk_cell_layout_get_cells(column);
4362-
for (var cellItem = cellList; cellItem != 0; cellItem = OS.g_list_next(cellItem)) {
4363-
var renderer = OS.g_list_data(cellItem);
4364-
if (GTK.GTK_IS_CELL_RENDERER_PIXBUF(renderer)) {
4365-
GTK.gtk_cell_renderer_set_fixed_size(renderer, pixbufWidth, pixbufHeight);
4359+
for (var colItem = columnList; colItem != 0; colItem = OS.g_list_next (colItem)) {
4360+
long column = OS.g_list_data (colItem);
4361+
var cellList = GTK.gtk_cell_layout_get_cells (column);
4362+
for (var cellItem = cellList; cellItem != 0; cellItem = OS.g_list_next (cellItem)) {
4363+
var renderer = OS.g_list_data (cellItem);
4364+
if (GTK.GTK_IS_CELL_RENDERER_PIXBUF (renderer)) {
4365+
GTK.gtk_cell_renderer_set_fixed_size (renderer, pixbufWidth, pixbufHeight);
43664366
}
43674367
}
4368-
OS.g_list_free(cellList);
4368+
OS.g_list_free (cellList);
43694369
}
4370-
OS.g_list_free(columnList);
4370+
OS.g_list_free (columnList);
43714371

43724372
// Executed in asyncExec because when this method is invoked from checkData(),
4373-
// then the "row_changed" signal is blocked (but we need it unblocked to invalidate
4374-
// existing rows).
4375-
display.asyncExec(() -> {
4376-
if (!isDisposed() && modelHandle != 0) {
4373+
// then the "row_changed" signal is blocked (but we need it unblocked to
4374+
// invalidate existing rows).
4375+
display.asyncExec ( () -> {
4376+
if (!isDisposed () && modelHandle != 0) {
43774377
// reset computed 'fixed_height' to '-1'
4378-
OS.g_object_set(handle, OS.fixed_height_mode, false, 0);
4379-
OS.g_object_set(handle, OS.fixed_height_mode, true, 0);
4378+
OS.g_object_set (handle, OS.fixed_height_mode, false, 0);
4379+
OS.g_object_set (handle, OS.fixed_height_mode, true, 0);
43804380

43814381
// to update height of the existing rows we need to invalidate them in gtk
43824382
// we do that by invoking gtk_tree_view_row_changed on each of them
4383-
long iter = OS.g_malloc(GTK.GtkTreeIter_sizeof());
4384-
if (GTK.gtk_tree_model_get_iter_first(modelHandle, iter)) {
4383+
long iter = OS.g_malloc (GTK.GtkTreeIter_sizeof ());
4384+
if (GTK.gtk_tree_model_get_iter_first (modelHandle, iter)) {
43854385
int[] value = new int[1];
43864386
do {
4387-
GTK.gtk_tree_model_get(modelHandle, iter, ID_COLUMN, value, -1);
4388-
GTK.gtk_tree_store_set(modelHandle, iter, ID_COLUMN, value[0], -1);
4389-
} while (GTK.gtk_tree_model_iter_next(modelHandle, iter));
4387+
GTK.gtk_tree_model_get (modelHandle, iter, ID_COLUMN, value, -1);
4388+
GTK.gtk_tree_store_set (modelHandle, iter, ID_COLUMN, value[0], -1);
4389+
} while (GTK.gtk_tree_model_iter_next (modelHandle, iter));
43904390
}
4391-
OS.g_free(iter);
4391+
OS.g_free (iter);
43924392
}
43934393
});
43944394
}

0 commit comments

Comments
 (0)