plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

Veczero.c (382B)


      1 #include <u.h>
      2 #include <libc.h>
      3 #include <vec.h>
      4 
      5 extern Vector* Vec(Type);
      6 
      7 void
      8 Veczero_(Type *p, ulong ms)
      9 {
     10 	Vector *v;
     11 
     12 	if (!p)
     13 		sysfatal("Veczero: nil pointer");
     14 	v = Vec(*p);
     15 	if (v->close != NULL)
     16 		for (;v->n;)
     17 			v->close((char*)*p + --v->n * ms);
     18 	v = realloc(v, sizeof(*v));
     19 	if (!v)
     20 		sysfatal("libvec vec.c:realloc(): %r");
     21 	v->n = 0;
     22 	v->size = 0;
     23 	*p = v + 1;
     24 }
     25