alignment niceness for ARM :)

SVN revision: 7127
This commit is contained in:
Carsten Haitzler 2003-07-10 23:18:42 +00:00
parent 426a67340f
commit 0bd04fcad7
3 changed files with 16 additions and 41 deletions

View File

@ -26,7 +26,7 @@ FILE *_eet_memfile_write_open(void **data, size_t *size);
void _eet_memfile_write_close(FILE *f); void _eet_memfile_write_close(FILE *f);
#ifndef PATH_MAX #ifndef PATH_MAX
#define PATH_MAX 4096 #define PATH_MAX 4095
#endif #endif
#endif #endif

View File

@ -863,19 +863,11 @@ eet_data_put_char(void *src, int *size_ret)
static int static int
eet_data_get_short(void *src, void *src_end, void *dst) eet_data_get_short(void *src, void *src_end, void *dst)
{ {
short *s, *d; short *d;
short tmp;
if ((src + sizeof(short)) > src_end) return -1; if ((src + sizeof(short)) > src_end) return -1;
s = (short *)src; memcpy(dst, src, sizeof(short));
d = (short *)dst; d = (short *)dst;
/* alignment fixup */
if ((int)s & (sizeof(short) - 1))
{
memcpy(&tmp, s, sizeof(short));
s = &tmp;
}
*d = *s;
CONV16(*d); CONV16(*d);
return sizeof(short); return sizeof(short);
} }
@ -898,19 +890,11 @@ eet_data_put_short(void *src, int *size_ret)
static int static int
eet_data_get_int(void *src, void *src_end, void *dst) eet_data_get_int(void *src, void *src_end, void *dst)
{ {
int *s, *d; int *d;
int tmp;
if ((src + sizeof(int)) > src_end) return -1; if ((src + sizeof(int)) > src_end) return -1;
s = (int *)src; memcpy(dst, src, sizeof(int));
d = (int *)dst; d = (int *)dst;
/* alignment fixup */
if ((int)s & (sizeof(int) - 1))
{
memcpy(&tmp, s, sizeof(int));
s = &tmp;
}
*d = *s;
CONV32(*d); CONV32(*d);
return sizeof(int); return sizeof(int);
} }
@ -933,19 +917,11 @@ eet_data_put_int(void *src, int *size_ret)
static int static int
eet_data_get_long_long(void *src, void *src_end, void *dst) eet_data_get_long_long(void *src, void *src_end, void *dst)
{ {
long long *s, *d; long long *d;
long long tmp;
if ((src + sizeof(long long)) > src_end) return -1; if ((src + sizeof(long long)) > src_end) return -1;
s = (long long *)src; memcpy(dst, src, sizeof(long long));
d = (long long *)dst; d = (long long *)dst;
/* alignment fixup */
if ((int)s & (sizeof(long long) - 1))
{
memcpy(&tmp, s, sizeof(long long));
s = &tmp;
}
*d = *s;
CONV64(*d); CONV64(*d);
return sizeof(long long); return sizeof(long long);
} }
@ -1696,7 +1672,7 @@ eet_data_descriptor_decode(Eet_Data_Descriptor *edd,
{ {
int ret; int ret;
void *data_ret; void *data_ret;
if ((ede->type >= EET_T_CHAR) && if ((ede->type >= EET_T_CHAR) &&
(ede->type <= EET_T_STRING)) (ede->type <= EET_T_STRING))
{ {

View File

@ -372,7 +372,7 @@ eet_open(char *file, Eet_File_Mode mode)
return NULL; return NULL;
} }
/* get magic no */ /* get magic no */
i1 = *((int *)(buf + 0)); memcpy(&i1, buf + 0, sizeof(int));
i2 = ntohl(i1); i2 = ntohl(i1);
if (i2 != EET_MAGIC_FILE) if (i2 != EET_MAGIC_FILE)
{ {
@ -380,10 +380,10 @@ eet_open(char *file, Eet_File_Mode mode)
return NULL; return NULL;
} }
/* get entries count and byte count */ /* get entries count and byte count */
i1 = *((int *)(buf + 4)); memcpy(&i1, buf + 4, sizeof(int));
i2 = ntohl(i1); i2 = ntohl(i1);
num_entries = (int)i2; num_entries = (int)i2;
i1 = *((int *)(buf + 8)); memcpy(&i1, buf + 8, sizeof(int));
i2 = ntohl(i1); i2 = ntohl(i1);
byte_entries = (int)i2; byte_entries = (int)i2;
/* we cant have <= 0 values here - invalid */ /* we cant have <= 0 values here - invalid */
@ -463,19 +463,19 @@ eet_open(char *file, Eet_File_Mode mode)
return NULL; return NULL;
} }
/* get entrie header */ /* get entrie header */
i1 = *((int *)(p + 0)); memcpy(&i1, p + 0, sizeof(int));
i2 = ntohl(i1); i2 = ntohl(i1);
offset = (int)i2; offset = (int)i2;
i1 = *((int *)(p + 4)); memcpy(&i1, p + 4, sizeof(int));
i2 = ntohl(i1); i2 = ntohl(i1);
flags = (int)i2; flags = (int)i2;
i1 = *((int *)(p + 8)); memcpy(&i1, p + 8, sizeof(int));
i2 = ntohl(i1); i2 = ntohl(i1);
size = (int)i2; size = (int)i2;
i1 = *((int *)(p + 12)); memcpy(&i1, p + 12, sizeof(int));
i2 = ntohl(i1); i2 = ntohl(i1);
data_size = (int)i2; data_size = (int)i2;
i1 = *((int *)(p + 16)); memcpy(&i1, p + 16, sizeof(int));
i2 = ntohl(i1); i2 = ntohl(i1);
name_size = (int)i2; name_size = (int)i2;
/* invalid size */ /* invalid size */
@ -510,7 +510,6 @@ eet_open(char *file, Eet_File_Mode mode)
/* copy name in and terminate it */ /* copy name in and terminate it */
strncpy(name, p + 20, name_size); strncpy(name, p + 20, name_size);
name[name_size] = 0; name[name_size] = 0;
/* get hask bucket it should go in */ /* get hask bucket it should go in */
hash = eet_hash_gen(name, ef->header->directory->size); hash = eet_hash_gen(name, ef->header->directory->size);
/* resize hask bucket */ /* resize hask bucket */