Re: Help with Error -4518
Posted in 1993
>From: aburt@mnemosyne.cs.du.edu (Andrew Burt) >>From:johnl@informix.com (Jonathan Leffler) >>}From: marchett@eng.gtefsd.com (Tony Marchetti) >>}I was wondering if anyone can help me with a problem I am having when >>}creating a report using INFORMIX-4GL. I am receiving error number -4518 - >>}"The 4GL program cannot allocate any more space for temporary string >>}storage" during executing of my application. ... >>You have my sympathy. ... >Er, I _really_ hate to differ with you on this, ... >We still have a few calls to acdealloc() sprinkled in the code where we >*know* the temp string space must be empty (but wasn't being freed); now >harmless, just there to prevent leaks. As of yesterday (Friday 17 December), I eliminated the function acdealloc() from the code -- it was causing me some aggravation and was in any case no longer doing anything useful. Should I re-instate a dummy routine for the convenience of people like yourself who have made use of the function in the past? >Nonetheless, users with -4518's should start with your most useful >-4518 error library, to help determine where the error lies [and the >routine to deallocate the TSS if you're confident it should be empty]. >(I'm surprised you didn't mention your own handiwork! Such modesty. >Should be in the archives.) Whatever its present merits, my Error-4518 library will no longer be of any relevance (or use) with 4.12 -- thank goodness! Since it is now obsolete, I did not see fit to mention it. I can still supply a copy of it if it is absolutely necessary to somebody who is not going to be able to wait for 4.12 to be available to them. >>The good news is that version 4.12 of I4GL does not generate error >>-4518, period. >Hallelujah! Does this mean someone did the extraordinarily trivial >and correct (IMHO) fix of calling malloc() instead of using the silly >10x512 chunks? Yes, amongst other things. There was a bit more to it than that, but it was a key component of the fix. >Though malloc() could still exhaust memory, so presumably some error is >generated when this happens, yes? Yes; error -4339 is still generated if you manage to use up all of virtual memory. However, it should take a great deal to do this now. In fact, in pure I4GL, it should be close to impossible. If you use some ESQL/C which reads the I4GL stack and pushes values on it, then you could still cause troubles, but I'd take the view that it's your own fault. If you pop all the parameters on entry to the ESQL/C, then do the processing, and finally do all the pushes immediately before you return, then you should not run into trouble. Yours, Jonathan Leffler (johnl@informix.com) #include <disclaimer.h>