--- ray/src/cv/bsdf2ttree.c 2012/10/19 04:14:29 2.1 +++ ray/src/cv/bsdf2ttree.c 2012/10/23 05:10:42 2.3 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: bsdf2ttree.c,v 2.1 2012/10/19 04:14:29 greg Exp $"; +static const char RCSid[] = "$Id: bsdf2ttree.c,v 2.3 2012/10/23 05:10:42 greg Exp $"; #endif /* * Load measured BSDF interpolant and write out as XML file with tensor tree. @@ -66,7 +66,8 @@ interp_isotropic() else printf("\t%.3e\n", bsdf); } - free(rbf); + if (rbf != NULL) + free(rbf); } if (pctcull >= 0) { /* finish output */ if (pclose(ofp)) { @@ -127,7 +128,8 @@ interp_anisotropic() else printf("\t%.3e\n", bsdf); } - free(rbf); + if (rbf != NULL) + free(rbf); } if (pctcull >= 0) { /* finish output */ if (pclose(ofp)) { @@ -160,14 +162,18 @@ main(int argc, char *argv[]) } argv += 2; argc -= 2; } - if (argc == 2) + if (argc == 2) { /* open input if given */ fpin = fopen(argv[1], "r"); - else if (argc != 1) + if (fpin == NULL) { + fprintf(stderr, "%s: cannot open BSDF interpolant '%s'\n", + progname, argv[1]); + return(1); + } + } else if (argc != 1) goto userr; SET_FILE_BINARY(fpin); /* load BSDF interpolant */ if (!load_bsdf_rep(fpin)) return(1); - draw_edges(); /* xml_prologue(); /* start XML output */ if (single_plane_incident) /* resample dist. */ interp_isotropic();