[Much time passes]
I went ahead and added this warning. I kept thinking I should write a more detailed explanation about why this is a problem, but I never got around to it. At least this let's people know that there are some dragons to be wary of.
-tim
On 5/28/07, Francesc Altet <faltet@carabos.com> wrote:
El dv 25 de 05 del 2007 a les 14:19 -0700, en/na Timothy Hochberg va
escriure:
> Don't feel bad, when I had a very similar problem early on when we
> were first adding multiple types and it mystified me for considerably
> longer than this seems to have stumped you.
Well, I wouldn't say the truth if I say that this doesn't help ;)
Anyway, I think that this piece of code is dangerous enough and in order
to avoid someone (including me!) tripping over it again, it would be
nice to apply the next 'patch':
Index: interp_body.c
===================================================================
--- interp_body.c (revision 3053)
+++ interp_body.c (working copy)
@@ -89,6 +89,9 @@
unsigned int arg2 = params.program[pc+3];
#define arg3 params.program[pc+5]
#define store_index params.index_data[store_in]
+ /* WARNING: From now on, only do references to
params.mem[arg[123]]
+ & params.memsteps[arg[123]] inside the VEC_ARG[123] macros,
+ or you will risk accessing invalid addresses. */
#define reduce_ptr (dest + flat_index(&store_index, j))
#define i_reduce *(long *)reduce_ptr
#define f_reduce *(double *)reduce_ptr
Cheers,
--
Francesc Altet | Be careful about using the following code --
Carabos Coop. V. | I've only proven that it works,
www.carabos.com | I haven't tested it. -- Donald Knuth
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion
--
. __
. |-\
.
. tim.hochberg@ieee.org