X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Date: Wed, 7 Jul 2021 16:32:23 +0200 (CEST) From: Roland Lutz To: "karl AT aspodata DOT se [via geda-user AT delorie DOT com]" Subject: Re: [geda-user] geda: cannot render fonts nor pins In-Reply-To: <20210707135156.BC70B83D1361@turkos.aspodata.se> Message-ID: References: <20210703152847 DOT D26ED83DA2A5 AT turkos DOT aspodata DOT se> <20210703175752 DOT E8E6D83DA2AA AT turkos DOT aspodata DOT se> <20210706170254 DOT 31451 DOT qmail AT stuge DOT se> <20210707123941 DOT CF5EA83B0DD4 AT turkos DOT aspodata DOT se> <20210707135156 DOT BC70B83D1361 AT turkos DOT aspodata DOT se> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset=US-ASCII Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Wed, 7 Jul 2021, karl AT aspodata DOT se [via geda-user AT delorie DOT com] wrote: > (gdb) print contents > $11 = 0x1000a4ea0 = {0x1000960e0, 0x100094600} You can view the contents of the first object struct with: (gdb) p *(OBJECT *)contents->data > (gdb) n > 464 eda_renderer_draw (renderer, (OBJECT *) iter->data); > (gdb) s > > (export:661): libgedacairo-CRITICAL **: 15:40:07.696: file edarenderer.c: line 585 (eda_renderer_draw_hatch): should not be reached > > (export:661): libgedacairo-WARNING **: 15:40:07.696: (edacairo.c:393):eda_cairo_stroke: code should not be reached > > (export:661): libgedacairo-WARNING **: 15:40:07.696: (edacairo.c:401):eda_cairo_stroke: code should not be reached > 463 for (iter = (GList *) contents; iter != NULL; iter = g_list_next (iter)) For me, this works: (gdb) n 464 eda_renderer_draw (renderer, (OBJECT *) iter->data); (gdb) s eda_renderer_draw (renderer=..., object=...) at ../../git/libgedacairo/edarenderer.c:472 472 g_return_if_fail (EDA_IS_RENDERER(renderer)); Maybe you didn't run "make clean" before changing the CFLAGS? > Is there some way to run this singlethreaded ? gEDA/gaf itself isn't multithreaded. I assume threads are used internally by one of the libraries. Now that you bring it up, it could be that some gEDA/gaf functions are called in a non-thread-safe way, causing the problems you described.