Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-swt-dev] SWT produce a VM failure on a GC.getFontMetrics() call.

It's never ok to crash. If there is no reasonable way to detect that the 
crash will occur, without incurring a non-trivial performance penalty, 
then it may be the case that allowing the potential crash is the lesser of 
two evils. 

In any case, given all the other places where SWT explicitly checks 
whether something has been disposed before using it, it's certainly 
possible that this could be another one.

McQ.




"Ivan Markov" <ivan.markov@xxxxxxxxx> 
Sent by: platform-swt-dev-admin@xxxxxxxxxxx
10/08/04 11:25
Please respond to
platform-swt-dev


To
<platform-swt-dev@xxxxxxxxxxx>
cc

Subject
Re: [platform-swt-dev] SWT produce a VM failure on a GC.getFontMetrics() 
call.






I've asked this very question on this mailing list in the past and I think 
the answer was "NO".
 
Question: Is SWT supposed NOT to crash (somehow, by refcounting used 
resources or whatnot) if user accidentally disposes a resource which is 
still selected somewhere, like a font in a GC?
 
Answer: It is OK to crash.
 
Has something changed recently?
 
 
----- Original Message ----- 
From: "Mike Wilson" <Mike_Wilson@xxxxxxxxxx>
To: <platform-swt-dev@xxxxxxxxxxx>
Sent: Friday, October 08, 2004 5:48 PM
Subject: Re: [platform-swt-dev] SWT produce a VM failure on a 
GC.getFontMetrics() call.

> True, but that does excuse the fact that SWT crashed. Seems like another 

> place where an isDisposed check is needed.
> 
> McQ.
> 
> 
> 
> 
> Arnaud De Muyser <ademuyser@xxxxxxxxxx> 
> Sent by: platform-swt-dev-admin@xxxxxxxxxxx
> 10/08/04 09:03
> Please respond to
> platform-swt-dev
> 
> 
> To
> platform-swt-dev@xxxxxxxxxxx
> cc
> 
> Subject
> Re: [platform-swt-dev] SWT produce a VM failure on a GC.getFontMetrics() 

> call.
> 
> 
> 
> 
> 
> 
> 
> Seek in it before sent mail .... Sorry. 
> 
> This is due to the following situation: 
> 
> Font font = new Font( ... ); 
> gc.setFont( font ); 
> font.dispose(); 
> gc.getFontMetrics() => core. 
> 
> The right think is to not dispose font after set it in a gc ... 
> 
> 
> 
> Arnaud De Muyser/France/IBM@IBMFR 
> Sent by: platform-swt-dev-admin@xxxxxxxxxxx 
> 10/08/2004 02:37 PM 
> 
> Please respond to
> platform-swt-dev
> 
> 
> To
> platform-swt-dev@xxxxxxxxxxx 
> cc
> 
> Subject
> [platform-swt-dev] SWT produce a VM failure on a GC.getFontMetrics() 
call.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Does anyone have already seen this kind of joke ? 
> Using Eclipse SDK 3.0.1 on a Linux Suse. 
> Thanks for your help. 
> Arnaud. 
> 
> 
> ** (<unknown>:668): CRITICAL **: file pango-fontmap.c: line 126 
> (pango_font_map_load_fontset): assertion 
> `pango_font_description_get_family (desc) != NULL' failed 
> 
> ** (<unknown>:668): CRITICAL **: file pango-fontset.c: line 101 
> (pango_fontset_get_metrics): assertion `fontset != NULL' failed 
> 
> (<unknown>:668): GLib-GObject-CRITICAL **: file gobject.c: line 1337 
> (g_object_unref): assertion `G_IS_OBJECT (object)' failed 
> 
> ** (<unknown>:668): CRITICAL **: file fonts.c: line 1206 
> (pango_font_metrics_get_ascent): assertion `metrics != NULL' failed 
> 
> ** (<unknown>:668): CRITICAL **: file fonts.c: line 1226 
> (pango_font_metrics_get_descent): assertion `metrics != NULL' failed 
> 
> ** (<unknown>:668): CRITICAL **: file fonts.c: line 1245 
> (pango_font_metrics_get_approximate_char_width): assertion `metrics != 
> NULL' failed 
> 
> ** (<unknown>:668): CRITICAL **: file fonts.c: line 1182 
> (pango_font_metrics_unref): assertion `metrics != NULL' failed 
> 
> ** (<unknown>:668): CRITICAL **: file pango-fontmap.c: line 126 
> (pango_font_map_load_fontset): assertion 
> `pango_font_description_get_family (desc) != NULL' failed 
> 
> ** (<unknown>:668): CRITICAL **: file pango-fontset.c: line 101 
> (pango_fontset_get_metrics): assertion `fontset != NULL' failed 
> 
> (<unknown>:668): GLib-GObject-CRITICAL **: file gobject.c: line 1337 
> (g_object_unref): assertion `G_IS_OBJECT (object)' failed 
> 
> ** (<unknown>:668): CRITICAL **: file fonts.c: line 1206 
> (pango_font_metrics_get_ascent): assertion `metrics != NULL' failed 
> 
> ** (<unknown>:668): CRITICAL **: file fonts.c: line 1226 
> (pango_font_metrics_get_descent): assertion `metrics != NULL' failed 
> 
> ** (<unknown>:668): CRITICAL **: file fonts.c: line 1245 
> (pango_font_metrics_get_approximate_char_width): assertion `metrics != 
> NULL' failed 
> 
> ** (<unknown>:668): CRITICAL **: file fonts.c: line 1182 
> (pango_font_metrics_unref): assertion `metrics != NULL' failed 
> 
> An unexpected exception has been detected in native code outside the VM. 

> Unexpected Signal : 11 occurred at PC=0x400E49DF 
> Function=strlen+0xF 
> Library=/lib/libc.so.6 
> 
> Current Java thread: 
>        at 
org.eclipse.swt.internal.gtk.OS.pango_context_get_metrics(Native 
> Method) 
>        - locked <0x4831db20> (a java.lang.Class) 
>        at org.eclipse.swt.graphics.GC.getFontMetrics(GC.java:1472) 
>                at .... 
> 
> and Sun's VM (1.4.2) produce a core file ... 
> 
> _______________________________________________
> platform-swt-dev mailing list
> platform-swt-dev@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/platform-swt-dev



Back to the top