Hi guys,
Starting a new thread because the old one got very long...
I think that the information in the wine developer's guide at these two
pages is relevant here:
http://www.winehq.com/site/docs/wine-devel/address-space
http://www.winehq.com/site/docs/wine-devel/initialization
It seems that wine_init imposes some Windows-style memory constraints, and
the big memory patch probably had some effect on this. The result is that
allocating big things after wine_init (called by fst_init) can cause
crashes. I don't know if this is a bug in Wine, a constraint on how winelib
applications should do things, or something else, because these memory
issues are beyond me. If somebody more knowledgeable wants to step in
here...
A quick fix for jack_fst seems to be to pre-reserve a chunk of memory,
exactly like jack_activate does, but before wine_init gets called. I put
the following function into jfst.c:
==
void jfst_reserve_mem (int bufsize)
{
char buf [bufsize];
int i;
fprintf (stderr, "Reserving memory: base=%p, size=%d,
end=%p\n",
buf, sizeof(buf), buf+sizeof(buf));
for (i=0; i<bufsize; i++)
{
buf[i] = (char) (i % 256);
}
}
==
and then insert "jfst_reserve_mem(1000000);" into main() somewhere
before
fst_init. There is no crash, but I don't know if the console thingy works
right because its infinite knobs and buttons confuse me, and I don't think
I have jack working properly.
- Walter