#define forb_sequence_elem(seq, index) ((seq)->_buffer[(index)])
#define forb_sequence_length(seq) ((seq)->_length)
+#define forb_sequence_allocated(seq) ((seq)->_maximum)
+#define forb_sequence_ensure_allocated(seq, num) \
+ ((seq)->_buffer = \
+ (forb_sequence_allocated(seq) < (num)) ? \
+ (forb_sequence_allocated(seq) = (num), \
+ realloc((seq)->_buffer, (num)*sizeof(*(seq)->_buffer))) : \
+ (seq)->_buffer)
#define forb_sequence_foreach(seq, elemptr) \
for ((elemptr)=&forb_sequence_elem((seq), 0); \
int i, *e, foreach_retuned_sum = 0;
forb_sequence_alloc(s, 10);
WVPASS(s);
+ WVPASS(forb_sequence_allocated(s) == 10);
+ WVPASS(forb_sequence_elem(s, 9) == 0);
+ WVPASS(forb_sequence_elem(s, 9) = 1);
+ WVPASS(forb_sequence_ensure_allocated(s, 1000) != NULL);
+ WVPASS(forb_sequence_allocated(s) == 1000);
+ WVPASS(forb_sequence_elem(s, 9) == 1);
+ WVPASS(forb_sequence_elem(s, 999) = 1);
CORBA_sequence_set_release(s, 1);
WVPASS(forb_sequence_length(s) == 0);
forb_sequence_free(s, destructor);