Revision: 61550 http://sourceforge.net/p/brlcad/code/61550 Author: brlcad Date: 2014-07-02 19:28:40 +0000 (Wed, 02 Jul 2014) Log Message: ----------- we shouldn't be allocating dynamic memory for data whose initial size is known and doesn't change. simplify the logic.
Modified Paths: -------------- brlcad/trunk/src/libged/fbclear.c Modified: brlcad/trunk/src/libged/fbclear.c =================================================================== --- brlcad/trunk/src/libged/fbclear.c 2014-07-02 18:17:43 UTC (rev 61549) +++ brlcad/trunk/src/libged/fbclear.c 2014-07-02 19:28:40 UTC (rev 61550) @@ -41,8 +41,6 @@ #include "fb.h" #include "ged.h" -static char usage[] = "\ -Usage: fbclear [rgb]"; #define FB_CONSTRAIN(_v, _a, _b) \ (((_v) > (_a)) ? ((_v) < (_b) ? (_v) : (_b)) : (_a)) @@ -50,8 +48,10 @@ int ged_fbclear(struct ged *gedp, int argc, const char *argv[]) { + static const char usage[] = "\nUsage: fbclear [rgb]"; + int ret; - unsigned char *clearColor; + unsigned char clearColor[3] = {0.0, 0.0 ,0.0}; GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR); GED_CHECK_FBSERV(gedp, GED_ERROR); @@ -61,35 +61,29 @@ /* initialize result */ bu_vls_trunc(gedp->ged_result_str, 0); - /* must be wanting help */ - if (argc == 1) { - clearColor = PIXEL_NULL; - } else if (argc == 2) { + if (argc == 2) { int r, g, b; if (sscanf(argv[1], "%d %d %d", &r, &g, &b) != 3) { bu_log("fb_clear: bad color spec - %s", argv[1]); - return BRLCAD_ERROR; + return GED_ERROR; } - clearColor = (unsigned char *)bu_calloc(4, sizeof(unsigned char), "alloc clearColor array"); - clearColor[RED] = FB_CONSTRAIN(r, 0, 255); clearColor[GRN] = FB_CONSTRAIN(g, 0, 255); clearColor[BLU] = FB_CONSTRAIN(b, 0, 255); - } else { + + } else if (argc > 2) { bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage); return GED_ERROR; } ret = fb_clear(gedp->ged_fbsp->fbs_fbp, clearColor); - bu_free(clearColor, "free clearColor"); + if (ret) + return GED_ERROR; - if (ret == BRLCAD_OK) - return GED_OK; - - return GED_ERROR; + return GED_OK; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Open source business process management suite built on Java and Eclipse Turn processes into business applications with Bonita BPM Community Edition Quickly connect people, data, and systems into organized workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards http://p.sf.net/sfu/Bonitasoft _______________________________________________ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits