Yeah, that's what I was about to ask..  why not use the routine that I 
coded in YAJLR4 (yajl_stdin_load_tree) -- but, I see you found that.
If you do want to do it yourself instead of using my routine... if the 
problem is simply that you're running out of automatic storage, well...  
then don't use automatic storage, use heap storage.   To do that, define 
your variable so that it is based on a pointer, and then use the %ALLOC 
BIF to allocate memory to it. Once you've done that, you can use 
QtmhRdStin (or QtmhWrStout as needed) to work with the variable.   Just 
make sure you use DEALLOC to free up the memory when you're done.
Allocated memory comes from the heap rather than from automatic storage, 
so shouldn't be a problem.
If you need to exceed the 16mb (approx) limit of single-level storage, 
instead of using %ALLOC/DEALLOC, you can also use the system APIs to 
allocate/free memory in teraspace.  This does NOT require changing your 
program's storage model to teraspace, but still allows the larger memory 
size.
But if you're happy with using my routine in YAJLR4, use that... then 
you don't have to worry about dynamic memory.
Writing it to an IFS file would work too...  but would be slower, and is 
overkill in this case.
On 3/19/2024 7:02 PM, Justin Taylor wrote:
If I'm reading it right, yajl_stdin_load_tree() in YAJL does exactly what
I'm looking for.
As an Amazon Associate we earn from qualifying purchases.