X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fglx%2Fpolyhedra.c;h=542dd1ec1a6d425bf873f31be4e598f9b80a3486;hb=5f9c47ca98dd43d8f59b7c27d3fde6edfde4fe21;hp=72538b34a0042e35b2746ea83c7d10c8804e64a9;hpb=49f5b54f312fe4ac2e9bc47581a72451bd0e8439;p=xscreensaver diff --git a/hacks/glx/polyhedra.c b/hacks/glx/polyhedra.c index 72538b34..542dd1ec 100644 --- a/hacks/glx/polyhedra.c +++ b/hacks/glx/polyhedra.c @@ -91,23 +91,23 @@ extern const char *progname; } while(0) #define Malloc(lvalue,n,type) do {\ - if (!(lvalue = (type*) malloc((n) * sizeof(type)))) \ - Err("out of memory");\ + if (!(lvalue = (type*) calloc((n), sizeof(type)))) \ + abort();\ } while(0) #define Realloc(lvalue,n,type) do {\ if (!(lvalue = (type*) realloc(lvalue, (n) * sizeof(type)))) \ - Err("out of memory");\ + abort();\ } while(0) #define Calloc(lvalue,n,type) do {\ if (!(lvalue = (type*) calloc(n, sizeof(type))))\ - Err("out of memory");\ + abort();\ } while(0) #define Matalloc(lvalue,n,m,type) do {\ if (!(lvalue = (type**) matalloc(n, (m) * sizeof(type))))\ - Err("out of memory");\ + abort();\ } while(0) #define Sprintfrac(lvalue,x) do {\ @@ -447,7 +447,7 @@ static const struct { "Catalan Solid", 30, 14}, - /* 33 */ {"2 3 5|", "Truncated Icosidodechedon", + /* 33 */ {"2 3 5|", "Truncated Icosidodecahedron", "Disdyakistriacontahedron", "Icosahedral (I[1])", "Archimedian Solid", @@ -2263,7 +2263,7 @@ construct_polyhedron (Polyhedron *P, Vector *v, int V, Vector *f, int F, facelets++; } else if (P->even != -1) { - if (hit[i]) { + if (hit && hit[i]) { push_face3 (result, P->incid[3][i], P->incid[0][i], ii); push_face3 (result, P->incid[1][i], P->incid[2][i], ii); } else { @@ -2418,7 +2418,7 @@ construct_polyhedra (polyhedron ***polyhedra_ret) int count = 0; polyhedron **result; - Malloc (result, last_uniform * 2 + 1, polyhedron*); + Malloc (result, last_uniform * 2 + 3, polyhedron*); while (index < last_uniform) { char sym[4]; @@ -2443,5 +2443,6 @@ construct_polyhedra (polyhedron ***polyhedra_ret) } *polyhedra_ret = result; + count++; /* leave room for teapot */ return count; }