From jp-www at dcs.gla.ac.uk  Tue Jul 19 12:39:40 2005
From: jp-www at dcs.gla.ac.uk (jp-www@dcs.gla.ac.uk)
Date: Tue, 19 Jul 2005 12:39:40 +0200 (CEST)
Subject: [Rd] segfault with grid and null unit (PR#8014)
Message-ID: <20050719103940.DE0B3A6FD@slim.kubism.ku.dk>

Full_Name: Jonathan Paisley
Version: 2.1.1
OS: Mac OS X 10.4.2
Submission from: (NULL) (81.178.107.67)


I was following an example from library/grid/doc/grid.pdf ("Introduction to
grid") and had the following code, where I'd mis-typed 1,3 instead of 1,2 as the
first arguments to grid.layout.

Sourcing this code causes the R GUI to crash. I've enclosed a partial backtrace
from the crash below.

==============
require(grid)

sometext = "hello there\nthis is a \ntest!"

pushViewport(
        viewport(
                layout=grid.layout(1,3,
                        widths=unit.c(
                                unit(1,"strwidth",sometext) +
                                unit(2,"cm"),
                                unit(1,"null")
                        )
                )
        )
)
==============

Date/Time:      2005-07-19 11:35:30.950 +0100
OS Version:     10.4.2 (Build 8C46)
Report Version: 3

Command: R
Path:    /Volumes/George/MyApplications/R.app/Contents/MacOS/R
Parent:  WindowServer [146]

Version: 1.12 (1622)

PID:    10493
Thread: 0

Exception:  EXC_BAD_ACCESS (0x0001)
Codes:      KERN_INVALID_ADDRESS (0x0001) at 0x68000001

Thread 0 Crashed:
0   libR.dylib               	0x00303d1c Rf_isObject + 0 (util.c:623)
1   grid.so                  	0x060c6240 pureNullUnit + 40 (unit.c:270)
2   grid.so                  	0x060c6284 pureNullUnit + 108 (unit.c:273)
3   grid.so                  	0x060c3894 findRelWidths + 60 (layout.c:69)
4   grid.so                  	0x060c484c calcViewportLayout + 172
(layout.c:464)
5   grid.so                  	0x060ca888 calcViewportTransform + 1296
(viewport.c:356)
6   grid.so                  	0x060be0a0 doSetViewport + 256 (grid.c:200)
7   grid.so                  	0x060be5ac L_setviewport + 76 (grid.c:311)
8   libR.dylib               	0x00249318 do_dotcall + 652 (dotcode.c:770)
9   libR.dylib               	0x0024cc7c do_dotcallgr + 80 (dotcode.c:1450)
10  libR.dylib               	0x00263b24 Rf_eval + 1536 (eval.c:405)
11  libR.dylib               	0x00265b1c do_set + 224 (eval.c:1309)



[Rd] segfault with grid and null unit (PR#8014)
jp-www@dcs.gla.ac.uk