506 |
|
} |
507 |
|
} |
508 |
|
f->next = ftst->next; /* remove from scene list */ |
509 |
< |
efree((char *)ftst); |
509 |
> |
efree(ftst); |
510 |
|
sc->nfaces--; |
511 |
|
} else |
512 |
|
f = f->next; |
572 |
|
{ |
573 |
|
while (sc->ndescr > 0) |
574 |
|
freeqstr(sc->descr[--sc->ndescr]); |
575 |
< |
efree((char *)sc->descr); |
575 |
> |
efree(sc->descr); |
576 |
> |
sc->descr = NULL; |
577 |
|
sc->ndescr = 0; |
578 |
|
} |
579 |
|
|
744 |
|
} |
745 |
|
} |
746 |
|
if (!varr[0]) { |
747 |
< |
efree((char *)varr); /* something went awry */ |
747 |
> |
efree(varr); /* something went awry */ |
748 |
|
return(NULL); |
749 |
|
} |
750 |
|
/* tighten array & return */ |
751 |
< |
return((int *)erealloc((char *)varr, sizeof(int)*(varr[0]+1))); |
751 |
> |
return((int *)erealloc(varr, sizeof(int)*(varr[0]+1))); |
752 |
|
} |
753 |
|
|
754 |
|
/* Callback for growBoundingBox() */ |
814 |
|
for (i = 0; i < osc->ndescr; i++) |
815 |
|
addComment(sc, osc->descr[i]); |
816 |
|
if (osc->ngrps > 1) { |
817 |
< |
sc->grpname = (char **)erealloc((char *)sc->grpname, |
817 |
> |
sc->grpname = (char **)erealloc(sc->grpname, |
818 |
|
sizeof(char *) * (osc->ngrps+(CHUNKSIZ-1))); |
819 |
|
for (i = 1; i < osc->ngrps; i++) |
820 |
|
sc->grpname[i] = savqstr(osc->grpname[i]); |
821 |
|
sc->ngrps = osc->ngrps; |
822 |
|
} |
823 |
|
if (osc->nmats > 1) { |
824 |
< |
sc->matname = (char **)erealloc((char *)sc->matname, |
824 |
> |
sc->matname = (char **)erealloc(sc->matname, |
825 |
|
sizeof(char *) * (osc->nmats+(CHUNKSIZ-1))); |
826 |
|
for (i = 1; i < osc->nmats; i++) |
827 |
|
sc->matname[i] = savqstr(osc->matname[i]); |
894 |
|
} |
895 |
|
tex_off = scdst->ntex; /* append texture coords */ |
896 |
|
if (scsrc->ntex > 0) { |
897 |
< |
scdst->tex = (TexCoord *)erealloc((char *)scdst->tex, |
897 |
> |
scdst->tex = (TexCoord *)erealloc(scdst->tex, |
898 |
|
sizeof(TexCoord)*(tex_off+scsrc->ntex+(CHUNKSIZ-1))); |
899 |
|
memcpy(scdst->tex+tex_off, scsrc->tex, |
900 |
|
sizeof(TexCoord)*scsrc->ntex); |
901 |
|
} |
902 |
|
norm_off = scdst->nnorms; /* append normals */ |
903 |
|
if (scsrc->nnorms > 0) { |
904 |
< |
scdst->norm = (Normal *)erealloc((char *)scdst->norm, |
904 |
> |
scdst->norm = (Normal *)erealloc(scdst->norm, |
905 |
|
sizeof(Normal)*(norm_off+scsrc->nnorms+(CHUNKSIZ-1))); |
906 |
|
memcpy(scdst->norm+norm_off, scsrc->norm, |
907 |
|
sizeof(Normal)*scsrc->nnorms); |
916 |
|
if (f->nv > vllen) { |
917 |
|
vlist = (VNDX *)( vlist == my_vlist ? |
918 |
|
emalloc(sizeof(VNDX)*f->nv) : |
919 |
< |
erealloc((char *)vlist, sizeof(VNDX)*f->nv) ); |
919 |
> |
erealloc(vlist, sizeof(VNDX)*f->nv) ); |
920 |
|
vllen = f->nv; |
921 |
|
} |
922 |
|
memset(vlist, 0xff, sizeof(VNDX)*f->nv); |
931 |
|
fcnt += (addFace(scdst, vlist, f->nv) != NULL); |
932 |
|
} |
933 |
|
/* clean up */ |
934 |
< |
if (vlist != my_vlist) efree((char *)vlist); |
935 |
< |
efree((char *)vert_map); |
934 |
> |
if (vlist != my_vlist) efree(vlist); |
935 |
> |
efree(vert_map); |
936 |
|
return(fcnt); |
937 |
|
} |
938 |
|
|
1043 |
|
} |
1044 |
|
if (nused == sc->nverts) |
1045 |
|
goto skip_pos; |
1046 |
< |
sc->vert = (Vertex *)erealloc((char *)sc->vert, |
1046 |
> |
sc->vert = (Vertex *)erealloc(sc->vert, |
1047 |
|
sizeof(Vertex)*(nused+(CHUNKSIZ-1))); |
1048 |
|
sc->nverts = nused; |
1049 |
|
for (f = sc->flist; f != NULL; f = f->next) |
1069 |
|
} |
1070 |
|
if (nused == sc->ntex) |
1071 |
|
goto skip_tex; |
1072 |
< |
sc->tex = (TexCoord *)erealloc((char *)sc->tex, |
1072 |
> |
sc->tex = (TexCoord *)erealloc(sc->tex, |
1073 |
|
sizeof(TexCoord)*(nused+(CHUNKSIZ-1))); |
1074 |
|
sc->ntex = nused; |
1075 |
|
for (f = sc->flist; f != NULL; f = f->next) |
1094 |
|
} |
1095 |
|
if (nused == sc->nnorms) |
1096 |
|
goto skip_norms; |
1097 |
< |
sc->norm = (Normal *)erealloc((char *)sc->norm, |
1097 |
> |
sc->norm = (Normal *)erealloc(sc->norm, |
1098 |
|
sizeof(Normal)*(nused+(CHUNKSIZ-1))); |
1099 |
|
sc->nnorms = nused; |
1100 |
|
for (f = sc->flist; f != NULL; f = f->next) |
1103 |
|
f->v[i].nid = vmap[f->v[i].nid]; |
1104 |
|
skip_norms: |
1105 |
|
/* clean up */ |
1106 |
< |
efree((char *)vmap); |
1106 |
> |
efree(vmap); |
1107 |
|
} |
1108 |
|
|
1109 |
|
/* Free a scene */ |
1118 |
|
clearComments(sc); |
1119 |
|
for (i = sc->ngrps; i-- > 0; ) |
1120 |
|
freeqstr(sc->grpname[i]); |
1121 |
< |
efree((char *)sc->grpname); |
1121 |
> |
efree(sc->grpname); |
1122 |
|
for (i = sc->nmats; i-- > 0; ) |
1123 |
|
freeqstr(sc->matname[i]); |
1124 |
< |
efree((char *)sc->matname); |
1125 |
< |
efree((char *)sc->vert); |
1126 |
< |
efree((char *)sc->tex); |
1127 |
< |
efree((char *)sc->norm); |
1124 |
> |
efree(sc->matname); |
1125 |
> |
efree(sc->vert); |
1126 |
> |
efree(sc->tex); |
1127 |
> |
efree(sc->norm); |
1128 |
|
while ((f = sc->flist) != NULL) { |
1129 |
|
sc->flist = f->next; |
1130 |
< |
efree((char *)f); |
1130 |
> |
efree(f); |
1131 |
|
} |
1132 |
< |
efree((char *)sc); |
1132 |
> |
efree(sc); |
1133 |
|
} |