code cleanup: replace term 'alpha' with '64' in makesdna, this was historic that dec-alpha was the first 64bit system blender was ported for, but now its not helpful to call it this way.

This commit is contained in:
Campbell Barton 2012-08-29 09:51:38 +00:00
parent 0bd759fddd
commit 1d9eaad73a

@ -144,8 +144,8 @@ static int nr_types = 0;
static int nr_structs = 0; static int nr_structs = 0;
static char **names, *namedata; /* at address names[a] is string a */ static char **names, *namedata; /* at address names[a] is string a */
static char **types, *typedata; /* at address types[a] is string a */ static char **types, *typedata; /* at address types[a] is string a */
static short *typelens; /* at typelens[a] is de length of type a */ static short *typelens_native; /* at typelens[a] is the length of type 'a' on this systems bitness (32 or 64) */
static short *alphalens; /* contains sizes as they are calculated on the DEC Alpha (64 bits), in fact any 64bit system */ static short *typelens_64; /* contains sizes as they are calculated on 64 bit systems */
static short **structs, *structdata; /* at sp = structs[a] is the first address of a struct definition static short **structs, *structdata; /* at sp = structs[a] is the first address of a struct definition
* sp[0] is type number * sp[0] is type number
* sp[1] is amount of elements * sp[1] is amount of elements
@ -242,8 +242,8 @@ static int add_type(const char *str, int len)
for (nr = 0; nr < nr_types; nr++) { for (nr = 0; nr < nr_types; nr++) {
if (strcmp(str, types[nr]) == 0) { if (strcmp(str, types[nr]) == 0) {
if (len) { if (len) {
typelens[nr] = len; typelens_native[nr] = len;
alphalens[nr] = len; typelens_64[nr] = len;
} }
return nr; return nr;
} }
@ -256,8 +256,8 @@ static int add_type(const char *str, int len)
} }
strcpy(cp, str); strcpy(cp, str);
types[nr_types] = cp; types[nr_types] = cp;
typelens[nr_types] = len; typelens_native[nr_types] = len;
alphalens[nr_types] = len; typelens_64[nr_types] = len;
if (nr_types >= maxnr) { if (nr_types >= maxnr) {
printf("too many types\n"); printf("too many types\n");
@ -712,7 +712,7 @@ static int arraysize(char *astr, int len)
static int calculate_structlens(int firststruct) static int calculate_structlens(int firststruct)
{ {
int a, b, len, alphalen, unknown = nr_structs, lastunknown, structtype, type, mul, namelen; int a, b, len_native, len_64, unknown = nr_structs, lastunknown, structtype, type, mul, namelen;
short *sp, *structpoin; short *sp, *structpoin;
char *cp; char *cp;
int has_pointer, dna_error = 0; int has_pointer, dna_error = 0;
@ -727,11 +727,11 @@ static int calculate_structlens(int firststruct)
structtype = structpoin[0]; structtype = structpoin[0];
/* when length is not known... */ /* when length is not known... */
if (typelens[structtype] == 0) { if (typelens_native[structtype] == 0) {
sp = structpoin + 2; sp = structpoin + 2;
len = 0; len_native = 0;
alphalen = 0; len_64 = 0;
has_pointer = 0; has_pointer = 0;
/* check all elements in struct */ /* check all elements in struct */
@ -754,25 +754,25 @@ static int calculate_structlens(int firststruct)
/* 4-8 aligned/ */ /* 4-8 aligned/ */
if (sizeof(void *) == 4) { if (sizeof(void *) == 4) {
if (len % 4) { if (len_native % 4) {
printf("Align pointer error in struct (len4): %s %s\n", types[structtype], cp); printf("Align pointer error in struct (len_native 4): %s %s\n", types[structtype], cp);
dna_error = 1; dna_error = 1;
} }
} }
else { else {
if (len % 8) { if (len_native % 8) {
printf("Align pointer error in struct (len8): %s %s\n", types[structtype], cp); printf("Align pointer error in struct (len_native 8): %s %s\n", types[structtype], cp);
dna_error = 1; dna_error = 1;
} }
} }
if (alphalen % 8) { if (len_64 % 8) {
printf("Align pointer error in struct (alphalen8): %s %s\n", types[structtype], cp); printf("Align pointer error in struct (len_64 8): %s %s\n", types[structtype], cp);
dna_error = 1; dna_error = 1;
} }
len += sizeof(void *) * mul; len_native += sizeof(void *) * mul;
alphalen += 8 * mul; len_64 += 8 * mul;
} }
else if (cp[0] == '[') { else if (cp[0] == '[') {
@ -780,7 +780,7 @@ static int calculate_structlens(int firststruct)
printf("Parse error in struct, invalid member name: %s %s\n", types[structtype], cp); printf("Parse error in struct, invalid member name: %s %s\n", types[structtype], cp);
dna_error = 1; dna_error = 1;
} }
else if (typelens[type]) { else if (typelens_native[type]) {
/* has the name an extra length? (array) */ /* has the name an extra length? (array) */
mul = 1; mul = 1;
if (cp[namelen - 1] == ']') mul = arraysize(cp, namelen); if (cp[namelen - 1] == ']') mul = arraysize(cp, namelen);
@ -792,54 +792,54 @@ static int calculate_structlens(int firststruct)
/* struct alignment */ /* struct alignment */
if (type >= firststruct) { if (type >= firststruct) {
if (sizeof(void *) == 8 && (len % 8) ) { if (sizeof(void *) == 8 && (len_native % 8) ) {
printf("Align struct error: %s %s\n", types[structtype], cp); printf("Align struct error: %s %s\n", types[structtype], cp);
dna_error = 1; dna_error = 1;
} }
} }
/* 2-4-8 aligned/ */ /* 2-4-8 aligned/ */
if (type < firststruct && typelens[type] > 4 && (len % 8)) { if (type < firststruct && typelens_native[type] > 4 && (len_native % 8)) {
printf("Align 8 error in struct: %s %s (add %d padding bytes)\n", types[structtype], cp, len % 8); printf("Align 8 error in struct: %s %s (add %d padding bytes)\n", types[structtype], cp, len_native % 8);
dna_error = 1; dna_error = 1;
} }
if (typelens[type] > 3 && (len % 4) ) { if (typelens_native[type] > 3 && (len_native % 4) ) {
printf("Align 4 error in struct: %s %s (add %d padding bytes)\n", types[structtype], cp, len % 4); printf("Align 4 error in struct: %s %s (add %d padding bytes)\n", types[structtype], cp, len_native % 4);
dna_error = 1; dna_error = 1;
} }
else if (typelens[type] == 2 && (len % 2) ) { else if (typelens_native[type] == 2 && (len_native % 2) ) {
printf("Align 2 error in struct: %s %s (add %d padding bytes)\n", types[structtype], cp, len % 2); printf("Align 2 error in struct: %s %s (add %d padding bytes)\n", types[structtype], cp, len_native % 2);
dna_error = 1; dna_error = 1;
} }
len += mul * typelens[type]; len_native += mul * typelens_native[type];
alphalen += mul * alphalens[type]; len_64 += mul * typelens_64[type];
} }
else { else {
len = 0; len_native = 0;
alphalen = 0; len_64 = 0;
break; break;
} }
} }
if (len == 0) { if (len_native == 0) {
unknown++; unknown++;
} }
else { else {
typelens[structtype] = len; typelens_native[structtype] = len_native;
alphalens[structtype] = alphalen; typelens_64[structtype] = len_64;
/* two ways to detect if a struct contains a pointer: /* two ways to detect if a struct contains a pointer:
* has_pointer is set or alphalen != len */ * has_pointer is set or len_64 != len_native */
if (has_pointer || alphalen != len) { if (has_pointer || len_64 != len_native) {
if (alphalen % 8) { if (len_64 % 8) {
printf("Sizeerror 8 in struct: %s (add %d bytes)\n", types[structtype], alphalen % 8); printf("Sizeerror 8 in struct: %s (add %d bytes)\n", types[structtype], len_64 % 8);
dna_error = 1; dna_error = 1;
} }
} }
if (len % 4) { if (len_native % 4) {
printf("Sizeerror 4 in struct: %s (add %d bytes)\n", types[structtype], len % 4); printf("Sizeerror 4 in struct: %s (add %d bytes)\n", types[structtype], len_native % 4);
dna_error = 1; dna_error = 1;
} }
@ -861,7 +861,7 @@ static int calculate_structlens(int firststruct)
structtype = structpoin[0]; structtype = structpoin[0];
/* length unknown */ /* length unknown */
if (typelens[structtype] != 0) { if (typelens_native[structtype] != 0) {
printf(" %s\n", types[structtype]); printf(" %s\n", types[structtype]);
} }
} }
@ -875,7 +875,7 @@ static int calculate_structlens(int firststruct)
structtype = structpoin[0]; structtype = structpoin[0];
/* length unknown yet */ /* length unknown yet */
if (typelens[structtype] == 0) { if (typelens_native[structtype] == 0) {
printf(" %s\n", types[structtype]); printf(" %s\n", types[structtype]);
} }
} }
@ -921,7 +921,7 @@ void printStructLengths(void)
for (a = 0; a < nr_structs; a++) { for (a = 0; a < nr_structs; a++) {
structpoin = structs[a]; structpoin = structs[a];
structtype = structpoin[0]; structtype = structpoin[0];
printf("\t%s\t:%d\n", types[structtype], typelens[structtype]); printf("\t%s\t:%d\n", types[structtype], typelens_native[structtype]);
} }
} }
@ -952,8 +952,8 @@ static int make_structDNA(char *baseDirectory, FILE *file)
/* a maximum of 5000 variables, must be sufficient? */ /* a maximum of 5000 variables, must be sufficient? */
names = MEM_callocN(sizeof(char *) * maxnr, "names"); names = MEM_callocN(sizeof(char *) * maxnr, "names");
types = MEM_callocN(sizeof(char *) * maxnr, "types"); types = MEM_callocN(sizeof(char *) * maxnr, "types");
typelens = MEM_callocN(sizeof(short) * maxnr, "typelens"); typelens_native = MEM_callocN(sizeof(short) * maxnr, "typelens_native");
alphalens = MEM_callocN(sizeof(short) * maxnr, "alphalens"); typelens_64 = MEM_callocN(sizeof(short) * maxnr, "typelens_64");
structs = MEM_callocN(sizeof(short) * maxnr, "structs"); structs = MEM_callocN(sizeof(short) * maxnr, "structs");
/* insertion of all known types */ /* insertion of all known types */
@ -1006,7 +1006,7 @@ static int make_structDNA(char *baseDirectory, FILE *file)
} }
printf("\n"); printf("\n");
sp = typelens; sp = typelens_native;
for (a = 0; a < nr_types; a++, sp++) { for (a = 0; a < nr_types; a++, sp++) {
printf(" %s %d\n", types[a], *sp); printf(" %s %d\n", types[a], *sp);
} }
@ -1014,7 +1014,7 @@ static int make_structDNA(char *baseDirectory, FILE *file)
for (a = 0; a < nr_structs; a++) { for (a = 0; a < nr_structs; a++) {
sp = structs[a]; sp = structs[a];
printf(" struct %s elems: %d size: %d\n", types[sp[0]], sp[1], typelens[sp[0]]); printf(" struct %s elems: %d size: %d\n", types[sp[0]], sp[1], typelens_native[sp[0]]);
num_types = sp[1]; num_types = sp[1];
sp += 2; sp += 2;
/* ? num_types was elem? */ /* ? num_types was elem? */
@ -1066,7 +1066,7 @@ static int make_structDNA(char *baseDirectory, FILE *file)
len = 2 * nr_types; len = 2 * nr_types;
if (nr_types & 1) len += 2; if (nr_types & 1) len += 2;
dna_write(file, typelens, len); dna_write(file, typelens_native, len);
/* WRITE STRUCTS */ /* WRITE STRUCTS */
strcpy(str, "STRC"); strcpy(str, "STRC");
@ -1097,7 +1097,7 @@ static int make_structDNA(char *baseDirectory, FILE *file)
} }
fprintf(fp, "main() {\n"); fprintf(fp, "main() {\n");
sp = typelens; sp = typelens_native;
sp += firststruct; sp += firststruct;
for (a = firststruct; a < nr_types; a++, sp++) { for (a = firststruct; a < nr_types; a++, sp++) {
if (*sp) { if (*sp) {
@ -1119,8 +1119,8 @@ static int make_structDNA(char *baseDirectory, FILE *file)
MEM_freeN(structdata); MEM_freeN(structdata);
MEM_freeN(names); MEM_freeN(names);
MEM_freeN(types); MEM_freeN(types);
MEM_freeN(typelens); MEM_freeN(typelens_native);
MEM_freeN(alphalens); MEM_freeN(typelens_64);
MEM_freeN(structs); MEM_freeN(structs);
if (debugSDNA > -1) printf("done.\n"); if (debugSDNA > -1) printf("done.\n");