diff libinterp/corefcn/gl2ps-renderer.cc @ 19910:5cfb3ccbf24a

style fixes for resource management * __osmesa_print__.cc (close_fcn): New function. (F__osmesa_print__): Manage FILE pointer with unwind_protect. Allocate local buffer with OCTAVE_LOCAL_BUFFER. * gl2ps-renderer.cc (gl2ps_print): Check for valid FILE pointer from octave_popen. * oct-parse.in.yy (parse_fcn_file): Check for valid FILE pointer from fopen.
author John W. Eaton <jwe@octave.org>
date Fri, 13 Feb 2015 16:46:21 -0500
parents 4197fc428c7d
children d575cd1e0da7
line wrap: on
line diff
--- a/libinterp/corefcn/gl2ps-renderer.cc
+++ b/libinterp/corefcn/gl2ps-renderer.cc
@@ -300,15 +300,20 @@
 {
 #ifdef HAVE_GL2PS_H
 
-  unwind_protect frame;
-
   FILE *fp = octave_popen (cmd.c_str (), "w");
 
-  frame.add_fcn (safe_pclose, fp);
+  if (fp)
+    {
+      unwind_protect frame;
+
+      frame.add_fcn (safe_pclose, fp);
 
-  glps_renderer rend (fp, term);
+      glps_renderer rend (fp, term);
 
-  rend.draw (fig, cmd);
+      rend.draw (fig, cmd);
+    }
+  else
+    error ("print: failed to open pipe for gl2ps renderer");
 
 #else