11/* 
22 *  R : A Computer Language for Statistical Data Analysis 
33 *  Copyright (C) 2001-3 Paul Murrell 
4-  *                2003-2024  The R Core Team 
4+  *                2003-2025  The R Core Team 
55 * 
66 *  This program is free software; you can redistribute it and/or modify 
77 *  it under the terms of the GNU General Public License as published by 
@@ -505,7 +505,7 @@ static Rboolean noChildren(SEXP children)
505505			  children ));
506506    PROTECT (result  =  eval (fcall , R_gridEvalEnv )); 
507507    UNPROTECT (2 );
508-     return  LOGICAL (result )[ 0 ] ;
508+     return  asRboolean (result );
509509}
510510
511511static  Rboolean  childExists (SEXP  name , SEXP  children ) 
@@ -515,7 +515,7 @@ static Rboolean childExists(SEXP name, SEXP children)
515515			  name , children ));
516516    PROTECT (result  =  eval (fcall , R_gridEvalEnv )); 
517517    UNPROTECT (2 );
518-     return  LOGICAL (result )[ 0 ] ;
518+     return  asRboolean (result );
519519}
520520
521521static  SEXP  childList (SEXP  children ) 
@@ -714,7 +714,7 @@ static Rboolean pathMatch(SEXP path, SEXP pathsofar, SEXP strict)
714714			  path , pathsofar , strict ));
715715    PROTECT (result  =  eval (fcall , R_gridEvalEnv )); 
716716    UNPROTECT (2 );
717-     return  LOGICAL (result )[ 0 ] ;    
717+     return  asRboolean (result );    
718718}
719719
720720static  SEXP  growPath (SEXP  pathsofar , SEXP  name ) 
@@ -1260,8 +1260,8 @@ SEXP L_newpage(void)
12601260    /* 
12611261     * Has the device been drawn on BY GRID yet? 
12621262     */ 
1263-     Rboolean  deviceGridDirty  =  LOGICAL (gridStateElement (dd , 
1264- 							GSS_GRIDDEVICE ))[ 0 ] ;
1263+     Rboolean  deviceGridDirty  =  asRboolean (gridStateElement (dd , 
1264+ 							    GSS_GRIDDEVICE ));
12651265    /* 
12661266     * Initialise grid on device 
12671267     * If no drawing on device yet, does a new page 
@@ -2468,7 +2468,8 @@ SEXP gridXspline(SEXP x, SEXP y, SEXP s, SEXP o, SEXP a, SEXP rep, SEXP index,
24682468	    }
24692469	}
24702470	PROTECT (points  =  GEXspline (nx , xx , yy , ss ,
2471- 				   LOGICAL (o )[0 ], LOGICAL (rep )[0 ],
2471+ 				   (Rboolean )LOGICAL (o )[0 ],
2472+ 				   (Rboolean )LOGICAL (rep )[0 ],
24722473				   draw , & gc , dd ));
24732474        {
24742475            /* 
@@ -3438,7 +3439,7 @@ SEXP L_path(SEXP x, SEXP y, SEXP index, SEXP rule)
34383439            }
34393440    	}
34403441    	updateGContext (currentgp , h , & gc , dd , gpIsScalar , & gcCache );
3441-     	GEPath (xx , yy , npoly , nper , INTEGER (rule )[ 0 ] , & gc , dd );
3442+     	GEPath (xx , yy , npoly , nper , asRboolean (rule ), & gc , dd );
34423443    	vmaxset (vmax );
34433444    }
34443445    GEMode (0 , dd );
@@ -3535,7 +3536,7 @@ SEXP L_raster(SEXP raster, SEXP x, SEXP y, SEXP w, SEXP h,
35353536                R_FINITE (ww ) &&  R_FINITE (hh ))
35363537                GERaster (image , INTEGER (dim )[1 ], INTEGER (dim )[0 ],
35373538                         xx , yy , ww , hh , rotationAngle , 
3538-                          LOGICAL (interpolate )[i  % LENGTH (interpolate )], 
3539+                          ( Rboolean )  LOGICAL (interpolate )[i  % LENGTH (interpolate )], 
35393540                         & gc , dd );
35403541        } else  {
35413542            /* We have to do a little bit of work to figure out where the  
@@ -3567,7 +3568,7 @@ SEXP L_raster(SEXP raster, SEXP x, SEXP y, SEXP w, SEXP h,
35673568                 */ 
35683569                GERaster (image , INTEGER (dim )[1 ], INTEGER (dim )[0 ],
35693570                         xbl , ybl , ww , hh , rotationAngle , 
3570-                          LOGICAL (interpolate )[i  % LENGTH (interpolate )], 
3571+                          ( Rboolean )  LOGICAL (interpolate )[i  % LENGTH (interpolate )], 
35713572                         & gc , dd );
35723573            }
35733574            UNPROTECT (2 );
0 commit comments