view tools/mb_c_header.m4 @ 67:3f2872a1a2fe

clear objects in *_free() for generated code
author Thinker K.F. Li <thinker@branda.to>
date Wed, 13 Aug 2008 08:05:50 +0800
parents c668c5c3ceae
children a6150b4e0667
line wrap: on
line source

changequote(`[', `]')dnl
divert([-1])

define([ADD_LINEAR_PAINT],[[
    paint_t *$1;
]])

define([ADD_RADIAL_PAINT],[[
    paint_t *$1;
]])
define([ADD_PATH],[
[    shape_t *$1;
]])
define([ADD_RECT],[
[    shape_t *$1;
]])
define([ADD_COORD],[
[    coord_t *$1;
]])
define([COLOR_STOP],[ ])

define([REF_STOPS],)
define([FILL_SHAPE],[[
    paint_t *$1_fill;
]])
define([STROKE_SHAPE],[[
    paint_t *$1_stroke;
]])
define([FILL_SHAPE_WITH_PAINT],)
define([STROKE_SHAPE_WITH_PAINT],)

define([MADBUTTERFLY],[dnl
[#ifndef __$1_H_
#define __$1_H_

typedef struct $1 $1_t;

struct $1 {
    coord_t *root_coord;]
$2[]dnl
[};

extern $1_t *$1_new(redraw_mant_t *rdman);
extern void $1_free($1_t *obj);

#endif /* __$1_H_ */]
])
divert[]dnl