-/*
+/*
* slide.c:
*
- * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
+ * Copyright (c) 2008 James McKenzie <sympathy@madingley.org>,
* All rights reserved.
*
*/
-static char rcsid[] = "$Id$";
+static char rcsid[] = "$Id: slide.c,v 1.8 2008/03/07 14:13:40 james Exp $";
-/*
- * $Log$
+/*
+ * $Log: slide.c,v $
+ * Revision 1.8 2008/03/07 14:13:40 james
+ * *** empty log message ***
+ *
+ * Revision 1.7 2008/03/07 13:16:02 james
+ * *** empty log message ***
+ *
+ * Revision 1.6 2008/03/07 12:37:04 james
+ * *** empty log message ***
+ *
+ * Revision 1.5 2008/03/03 06:04:42 james
+ * *** empty log message ***
+ *
+ * Revision 1.4 2008/03/02 10:37:56 james
+ * *** empty log message ***
+ *
+ * Revision 1.3 2008/02/14 02:46:44 james
+ * *** empty log message ***
+ *
+ * Revision 1.2 2008/02/14 00:57:58 james
+ * *** empty log message ***
+ *
* Revision 1.1 2008/02/13 16:57:29 james
* *** empty log message ***
*
slide_consume (Slide * s, int n)
{
s->nbytes -= n;
+
+ if (s->nbytes < 0)
+ crash_out ("slide_consume called with -ve number of bytes");
+
memmove (s->slide, s->slide + n, s->nbytes);
- if ((s->size > s->target_size) && (s->nbytes <= s->size))
- {
- s->size = s->target_size;
- s->slide = realloc (s->slide, s->size);
- }
+ if ((s->size > s->target_size) && (s->nbytes <= s->target_size)) {
+ s->size = s->target_size;
+ s->slide = realloc (s->slide, s->size);
+ }
}
Slide *
slide_new (int n)
{
- Slide *ret = (Slide *) malloc (sizeof (Slide));
+ Slide *ret = (Slide *) xmalloc (sizeof (Slide));
- ret->slide = (uint8_t *) malloc (n);
+ ret->slide = (uint8_t *) xmalloc (n);
ret->size = n;
ret->target_size = n;
ret->nbytes = 0;
while (n > s->size)
s->size <<= 1;
-//FIXME -- might fail
- s->slide = realloc (s->slide, s->size);
+ s->slide = xrealloc (s->slide, s->size);
}