From felix at nfrac.org  Fri Nov 14 08:59:54 2008
From: felix at nfrac.org (Felix Andrews)
Date: Fri, 14 Nov 2008 18:59:54 +1100
Subject: [Rd] grid error: protection stack overflow
In-Reply-To: <94730b8a0811132327g1ee7691ajdc5c41d61dd14bb4@mail.gmail.com>
References: <94730b8a0811132327g1ee7691ajdc5c41d61dd14bb4@mail.gmail.com>
Message-ID: <94730b8a0811132359r2e470497g5c8555def5532826@mail.gmail.com>

For the record, a much better alternative to try(downViewport()) is

curVps <- grid.ls(grobs = FALSE, viewports = TRUE, print = FALSE)$name
if ("fooVp" %in% curVps) ...


2008/11/14 Felix Andrews <felix at nfrac.org>:
> I have isolated an error that can be reproduced by the following code.
> The same thing happens in 2.8.0pat and 2.9.0dev. It looks like the
> try() code is ending up in the display list, or something?
>
> library(grid)
> library(lattice)
>
> xyplot(1:100 ~ 1:100)
> test <- try(downViewport("pageAnnotationVp"), silent = TRUE)
> downViewport(trellis.vpname("toplevel"))
> pushViewport(viewport(name = "pageAnnotationVp", yscale = c(1, 0)))
> upViewport(0)
>
> ## resize device to trigger a couple of redraws...
>
> Error: protect(): protection stack overflow
>
> Enter a frame number, or 0 to exit
> 1: no.children(<environment>)
> 2: ls(children, all.names = TRUE)
> 3: try(name)
> 4: tryCatch(expr, error = function(e) {
> 5: tryCatchList(expr, classes, parentenv, handlers)
> 6: tryCatchOne(expr, names, parentenv, handlers[[1]])
> 7: doTryCatch(return(expr), name, parentenv, handler)
>
>
>> sessionInfo()
> R version 2.8.0 Patched (2008-11-10 r46884)
> i386-pc-mingw32
>
> locale:
> LC_COLLATE=English_Australia.1252;LC_CTYPE=English_Australia.1252;LC_MONETARY=English_Australia.1252;LC_NUMERIC=C;LC_TIME=English_Australia.1252
>
> attached base packages:
> [1] grid      stats     graphics  grDevices utils     datasets
> methods   base
>
> other attached packages:
> [1] lattice_0.17-15
>
>
> --
> Felix Andrews / ???
> http://www.neurofractal.org/felix/
> 3358 543D AAC6 22C2 D336  80D9 360B 72DD 3E4C F5D8
>



-- 
Felix Andrews / ???
http://www.neurofractal.org/felix/
3358 543D AAC6 22C2 D336  80D9 360B 72DD 3E4C F5D8



[Rd] grid error: protection stack overflow
Felix Andrews