/*
- * Copyright (C) 1994, Index Data I/S
- * All rights reserved.
+ * Copyright (c) 1995, Index Data
+ * See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_seq.c,v $
- * Revision 1.8 1995-03-15 11:18:05 quinn
+ * Revision 1.16 1995-09-29 17:12:26 quinn
+ * Smallish
+ *
+ * Revision 1.15 1995/09/27 15:03:00 quinn
+ * Modified function heads & prototypes.
+ *
+ * Revision 1.14 1995/08/15 11:16:39 quinn
+ * Fixed pretty-printers.
+ * CV:e ----------------------------------------------------------------------
+ * CV:e ----------------------------------------------------------------------
+ *
+ * Revision 1.13 1995/05/22 14:56:57 quinn
+ * Fixed problem in decoding empty sequence.
+ *
+ * Revision 1.12 1995/05/18 13:06:32 quinn
+ * Smallish.
+ *
+ * Revision 1.11 1995/05/17 08:41:54 quinn
+ * Small, hopefully insignificant change.
+ *
+ * Revision 1.10 1995/05/16 08:50:59 quinn
+ * License, documentation, and memory fixes
+ *
+ * Revision 1.9 1995/03/17 10:17:57 quinn
+ * Added memory management.
+ *
+ * Revision 1.8 1995/03/15 11:18:05 quinn
* Fixed serious bug in odr_cons
*
* Revision 1.7 1995/03/08 12:12:30 quinn
if (odr_constructed_begin(o, p, o->t_class, o->t_tag))
{
if (o->direction == ODR_DECODE && size)
- *pp = nalloc(o, size);
- if (o->direction == ODR_PRINT)
- {
- fprintf(o->print, "%s{\n", odr_indent(o));
- o->indent++;
- }
+ *pp = odr_malloc(o, size);
return 1;
}
else
int odr_sequence_end(ODR o)
{
- if (o->direction == ODR_PRINT)
- {
- assert(o->indent > 0);
- o->indent--;
- fprintf(o->print, "%s}\n", odr_indent(o));
- }
return odr_constructed_end(o);
}
int odr_sequence_of(ODR o, Odr_fun type, void *p, int *num)
{
char ***pp = (char***) p; /* for dereferencing */
- char **tmp;
- char *dummy = "Nothing";
+ char **tmp = 0;
int size = 0, i;
- if (!odr_sequence_begin(o, &dummy, 0))
+ if (!odr_sequence_begin(o, p, 0))
return 0;
switch (o->direction)
{
case ODR_DECODE:
*num = 0;
+ *pp = ODR_NULLVAL;
while (odr_sequence_more(o))
{
/* outgrown array? */
if (*num * sizeof(void*) >= size)
{
/* double the buffer size */
- tmp = nalloc(o, sizeof(void*) * (size += size ? size :
+ tmp = odr_malloc(o, sizeof(void*) * (size += size ? size :
128));
if (*num)
{