From fe1be78e384c11f7f15a712f116cdeb9e914957b Mon Sep 17 00:00:00 2001 From: Miller Puckette Date: Thu, 7 Dec 2006 16:19:05 +0000 Subject: More 64 bit fixes, notably confusion about file extensions and taking garray_getfloatarray out of expr svn path=/trunk/; revision=6685 --- pd/extra/expr~/makefile | 2 +- pd/extra/expr~/vexp_if.c | 26 +++++++++++----------- pd/extra/makefile | 2 +- pd/portaudio/pa_win_wdmks/pa_win_wdmks.c | 2 +- pd/portaudio/pablio/ringbuffer.c | 2 +- pd/portaudio/pablio/ringbuffer.h | 2 +- pd/portmidi/pm_mac/pmmacosxcm.c | 2 +- pd/src/configure.in | 3 ++- pd/src/d_array.c | 37 ++++++++++---------------------- pd/src/d_osc.c | 7 ------ pd/src/notes.txt | 7 +----- pd/src/s_loader.c | 8 +++---- pd/src/x_list.c | 2 +- 13 files changed, 39 insertions(+), 63 deletions(-) (limited to 'pd') diff --git a/pd/extra/expr~/makefile b/pd/extra/expr~/makefile index 2b4cdc58..4889afe5 100644 --- a/pd/extra/expr~/makefile +++ b/pd/extra/expr~/makefile @@ -78,7 +78,7 @@ LINUXOBJ = vexp.pd_linux_o vexp_fun.pd_linux_o vexp_if.pd_linux_o .SUFFIXES: .pd_linux_o LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer -fPIC \ - -Wall -W -Wshadow -Wstrict-prototypes \ + -fno-strict-aliasing -Wall -W -Wshadow -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch LINUXINCLUDE = -I../../src diff --git a/pd/extra/expr~/vexp_if.c b/pd/extra/expr~/vexp_if.c index 08dc55c3..648aba73 100644 --- a/pd/extra/expr~/vexp_if.c +++ b/pd/extra/expr~/vexp_if.c @@ -895,10 +895,10 @@ max_ex_tab(struct expr *expr, fts_symbol_t s, struct ex_ex *arg, #ifdef PD t_garray *garray; int size, indx; - t_float *vec; + t_word *wvec; if (!s || !(garray = (t_garray *)pd_findbyclass(s, garray_class)) || - !garray_getfloatarray(garray, &size, &vec)) + !garray_getfloatwords(garray, &size, &wvec)) { optr->ex_type = ET_FLT; optr->ex_flt = 0; @@ -922,7 +922,7 @@ max_ex_tab(struct expr *expr, fts_symbol_t s, struct ex_ex *arg, } if (indx < 0) indx = 0; else if (indx >= size) indx = size - 1; - optr->ex_flt = vec[indx]; + optr->ex_flt = wvec[indx].w_float; #else /* MSP */ /* * table lookup not done for MSP yet @@ -952,7 +952,7 @@ max_ex_var(struct expr *expr, fts_symbol_t var, struct ex_ex *optr) */ #define ISTABLE(sym, garray, size, vec) \ if (!sym || !(garray = (t_garray *)pd_findbyclass(sym, garray_class)) || \ - !garray_getfloatarray(garray, &size, &vec)) { \ + !garray_getfloatwords(garray, &size, &vec)) { \ optr->ex_type = ET_FLT; \ optr->ex_int = 0; \ error("no such table '%s'", sym->s_name); \ @@ -968,7 +968,7 @@ ex_size(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr) t_symbol *s; t_garray *garray; int size; - t_float *vec; + t_word *wvec; if (argv->ex_type != ET_SYM) { @@ -980,7 +980,7 @@ ex_size(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr) s = (fts_symbol_t ) argv->ex_ptr; - ISTABLE(s, garray, size, vec); + ISTABLE(s, garray, size, wvec); optr->ex_type = ET_INT; optr->ex_int = size; @@ -996,7 +996,8 @@ ex_sum(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr) t_symbol *s; t_garray *garray; int size; - t_float *vec, sum; + t_word *wvec; + float sum; int indx; if (argv->ex_type != ET_SYM) @@ -1009,10 +1010,10 @@ ex_sum(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr) s = (fts_symbol_t ) argv->ex_ptr; - ISTABLE(s, garray, size, vec); + ISTABLE(s, garray, size, wvec); for (indx = 0, sum = 0; indx < size; indx++) - sum += vec[indx]; + sum += wvec[indx].w_float; optr->ex_type = ET_FLT; optr->ex_flt = sum; @@ -1029,7 +1030,8 @@ ex_Sum(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr) t_symbol *s; t_garray *garray; int size; - t_float *vec, sum; + t_word *wvec; + t_float sum; int indx, n1, n2; if (argv->ex_type != ET_SYM) @@ -1042,7 +1044,7 @@ ex_Sum(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr) s = (fts_symbol_t ) argv->ex_ptr; - ISTABLE(s, garray, size, vec); + ISTABLE(s, garray, size, wvec); if (argv->ex_type != ET_INT || argv[1].ex_type != ET_INT) { @@ -1056,7 +1058,7 @@ ex_Sum(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr) for (indx = n1, sum = 0; indx < n2; indx++) if (indx >= 0 && indx < size) - sum += vec[indx]; + sum += wvec[indx].w_float; optr->ex_type = ET_FLT; optr->ex_flt = sum; diff --git a/pd/extra/makefile b/pd/extra/makefile index bc913aca..56e59bed 100644 --- a/pd/extra/makefile +++ b/pd/extra/makefile @@ -19,7 +19,7 @@ PDNTLIB = $(PDNTLDIR)\libc.lib \ .c.dll: cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c - link /nologo /dll /export:$(CSYM)_setup $*.obj $(PDNTLIB) + link /dll /export:$(CSYM)_setup $*.obj $(PDNTLIB) # ----------------------- IRIX 5.x ----------------------- diff --git a/pd/portaudio/pa_win_wdmks/pa_win_wdmks.c b/pd/portaudio/pa_win_wdmks/pa_win_wdmks.c index 054197c4..ca385eab 100644 --- a/pd/portaudio/pa_win_wdmks/pa_win_wdmks.c +++ b/pd/portaudio/pa_win_wdmks/pa_win_wdmks.c @@ -1,5 +1,5 @@ /* - * $Id: pa_win_wdmks.c,v 1.16 2006-10-22 21:46:10 millerpuckette Exp $ + * $Id: pa_win_wdmks.c,v 1.17 2006-12-07 16:19:05 millerpuckette Exp $ * PortAudio Windows WDM-KS interface * * Author: Andrew Baldwin diff --git a/pd/portaudio/pablio/ringbuffer.c b/pd/portaudio/pablio/ringbuffer.c index ab4b9473..96c2158d 100644 --- a/pd/portaudio/pablio/ringbuffer.c +++ b/pd/portaudio/pablio/ringbuffer.c @@ -1,5 +1,5 @@ /* - * $Id: ringbuffer.c,v 1.15 2006-10-22 21:46:10 millerpuckette Exp $ + * $Id: ringbuffer.c,v 1.16 2006-12-07 16:19:05 millerpuckette Exp $ * ringbuffer.c * Ring Buffer utility.. * diff --git a/pd/portaudio/pablio/ringbuffer.h b/pd/portaudio/pablio/ringbuffer.h index b26e30b4..cc7db0ad 100644 --- a/pd/portaudio/pablio/ringbuffer.h +++ b/pd/portaudio/pablio/ringbuffer.h @@ -6,7 +6,7 @@ extern "C" #endif /* __cplusplus */ /* - * $Id: ringbuffer.h,v 1.16 2006-10-22 21:46:10 millerpuckette Exp $ + * $Id: ringbuffer.h,v 1.17 2006-12-07 16:19:05 millerpuckette Exp $ * ringbuffer.h * Ring Buffer utility.. * diff --git a/pd/portmidi/pm_mac/pmmacosxcm.c b/pd/portmidi/pm_mac/pmmacosxcm.c index 6c9df3c7..a27b915a 100644 --- a/pd/portmidi/pm_mac/pmmacosxcm.c +++ b/pd/portmidi/pm_mac/pmmacosxcm.c @@ -5,7 +5,7 @@ * and subsequent work by Andrew Zeldis and Zico Kolter * and Roger B. Dannenberg * - * $Id: pmmacosxcm.c,v 1.16 2006-10-22 21:46:10 millerpuckette Exp $ + * $Id: pmmacosxcm.c,v 1.17 2006-12-07 16:19:05 millerpuckette Exp $ */ /* Notes: diff --git a/pd/src/configure.in b/pd/src/configure.in index a1ceb48e..a94c70eb 100644 --- a/pd/src/configure.in +++ b/pd/src/configure.in @@ -254,7 +254,8 @@ then MORECFLAGS="-DMACOSX3 -DPA_BIG_ENDIAN -Wno-error" EXTERNTARGET=d_ppc else - MORECFLAGS="-arch i386 -arch ppc -Wno-error" + MORECFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk \ + -arch i386 -arch ppc -Wno-error" EXTERNTARGET=d_fat LDFLAGS=$LDFLAGS" -arch i386 -arch ppc" fi diff --git a/pd/src/d_array.c b/pd/src/d_array.c index de72ef12..e8c034fe 100644 --- a/pd/src/d_array.c +++ b/pd/src/d_array.c @@ -503,32 +503,28 @@ static void tabread4_tilde_setup(void) #define HIOFFSET 0 /* word offset to find MSB */ #define LOWOFFSET 1 /* word offset to find LSB */ #define int32 long /* a data type that has 32 bits */ -#else +#endif /* IRIX */ + #ifdef MSW /* little-endian; most significant byte is at highest address */ #define HIOFFSET 1 #define LOWOFFSET 0 #define int32 long -#else -#ifdef __FreeBSD__ +#endif + +#if defined(__FreeBSD__) || defined(__APPLE__) #include -#if BYTE_ORDER == LITTLE_ENDIAN -#define HIOFFSET 1 -#define LOWOFFSET 0 -#else -#define HIOFFSET 0 /* word offset to find MSB */ -#define LOWOFFSET 1 /* word offset to find LSB */ -#endif /* BYTE_ORDER */ -#include -#define int32 int32_t #endif -#ifdef __linux__ +#ifdef __linux__ #include +#endif + +#if defined(__unix__) || defined(__APPLE__) #if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) #error No byte order defined #endif - + #if __BYTE_ORDER == __LITTLE_ENDIAN #define HIOFFSET 1 #define LOWOFFSET 0 @@ -536,20 +532,9 @@ static void tabread4_tilde_setup(void) #define HIOFFSET 0 /* word offset to find MSB */ #define LOWOFFSET 1 /* word offset to find LSB */ #endif /* __BYTE_ORDER */ - #include #define int32 int32_t - -#else -#ifdef __APPLE__ -#define HIOFFSET 0 /* word offset to find MSB */ -#define LOWOFFSET 1 /* word offset to find LSB */ -#define int32 int /* a data type that has 32 bits */ - -#endif /* __APPLE__ */ -#endif /* __linux__ */ -#endif /* MSW */ -#endif /* SGI */ +#endif /* __unix__ or __APPLE__*/ union tabfudge { diff --git a/pd/src/d_osc.c b/pd/src/d_osc.c index 58533165..0f2eb3e9 100644 --- a/pd/src/d_osc.c +++ b/pd/src/d_osc.c @@ -30,11 +30,6 @@ #include #endif -#ifdef __APPLE__ -#define __BYTE_ORDER BYTE_ORDER -#define __LITTLE_ENDIAN LITTLE_ENDIAN -#endif - #ifdef __linux__ #include #endif @@ -55,14 +50,12 @@ #define int32 int32_t #endif /* __unix__ or __APPLE__*/ - union tabfudge { double tf_d; int32 tf_i[2]; }; - /* -------------------------- phasor~ ------------------------------ */ static t_class *phasor_class, *scalarphasor_class; diff --git a/pd/src/notes.txt b/pd/src/notes.txt index 93c9986b..1aa5f8c5 100644 --- a/pd/src/notes.txt +++ b/pd/src/notes.txt @@ -1,14 +1,8 @@ ---------------- dolist -------------------- 0.40-1: - http "about" broken on MSW? help browser broke on Panurge binbuf_read_via_canvas in x_qlist.c -check bug reports on sourceforge -double-click fix on mac? -http://sourceforge.net/tracker/index.php? -func=detail&aid=1564617&group_id=55736&atid=478072 - PC device counting problem (first device invoked by -audiodev 0) test: @@ -52,6 +46,7 @@ detect adc~ and dac~ reblocking more demonstration patches: vibrato using variable delay +real-time spectrum grapher features: sigmund~: sort by pitch; one-shot diff --git a/pd/src/s_loader.c b/pd/src/s_loader.c index a10ebab6..d2022146 100644 --- a/pd/src/s_loader.c +++ b/pd/src/s_loader.c @@ -35,7 +35,7 @@ a fat binary or an indication of the instruction set. */ static char sys_dllextent[] = ".b_i386", sys_dllextent2[] = ".pd_freebsd"; #endif #ifdef __linux__ -#ifdef __ia64__ +#ifdef __x86_64__ static char sys_dllextent[] = ".l_ia64", sys_dllextent2[] = ".pd_linux"; #else static char sys_dllextent[] = ".l_i386", sys_dllextent2[] = ".pd_linux"; @@ -94,9 +94,9 @@ static int sys_do_load_lib(t_canvas *canvas, char *objectname) if (classname = strrchr(objectname, '/')) classname++; else classname = objectname; - if (sys_onloadlist(classname)) + if (sys_onloadlist(objectname)) { - post("%s: already loaded", classname); + post("%s: already loaded", objectname); return (1); } for (i = 0, nameptr = classname; i < MAXPDSTRING-7 && *nameptr; nameptr++) @@ -194,7 +194,7 @@ gotone: } (*makeout)(); class_set_extern_dir(&s_); - sys_putonloadlist(classname); + sys_putonloadlist(objectname); return (1); } diff --git a/pd/src/x_list.c b/pd/src/x_list.c index be37a375..23989585 100644 --- a/pd/src/x_list.c +++ b/pd/src/x_list.c @@ -410,7 +410,7 @@ static void list_length_list(t_list_length *x, t_symbol *s, static void list_length_anything(t_list_length *x, t_symbol *s, int argc, t_atom *argv) { - outlet_float(x->x_obj.ob_outlet, (float)argc); + outlet_float(x->x_obj.ob_outlet, (float)argc+1); } static void list_length_setup(void) -- cgit v1.2.1