[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.platform.swt] Maximum number of objects when using Linux/GTK

Hi,

When creating a large amount of widgets in my SWT application, an error occurs and the following message is displayed:

(SWT:28652): GLib-GObject-CRITICAL **: g_closure_ref: assertion `closure->ref_count < CLOSURE_MAX_REF_COUNT' failed
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0xb0dbc72e, pid=28652, tid=3085366976
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_10-b03 mixed mode, sharing)
# Problematic frame:
# C [libgobject-2.0.so.0+0x1972e]
#
# An error report file with more information is saved as hs_err_pid28652.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.js


I wrote this snippet to know if it was a problem concerning the huge number of created widgets:

package test;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class MaximumNumberOfTextWidgets {

	public static void main(String[] args) {

		int max = 100000;
		
		Display display = new Display();
		Shell shell = new Shell(display);
		shell.setLayout(new GridLayout());

		for (int i = 0; i < max; i++) {
			Text text = new Text(shell, SWT.NONE);
			text.setText(i+"");
			System.out.println(i);
		}

		shell.pack ();
		shell.open();
		while (!shell.isDisposed ()) {
			if (!display.readAndDispatch ()) display.sleep ();
		}
		display.dispose ();
	}
}

The same error occurs when i = 32763, which is really close to 2 power 15 (32768). Does this mean that the number of widgets is limited to this value ? Do we have the possibility to increase this value ?

Thanks !
Helene