| > So, can you confirm or deny that ILV routines on Ultrix do not support DYNAMIC
>descriptors (even if the descriptors are allocated via mcc_alloc/mcc_calloc).
Yes. The exact same protocol is used on Ultrix. The descriptors MUST
be set to Class D. For Class S, you enlarge your buffers yourself.
In the Class D descriptor case, an buffer for "ilv_put"s will be extended
by 512 bytes if it is too small, up to the limit of 32500 bytes. A buffer
for "ilv_get"s will be extended by just enough to hold the datum.
Note that ILV does this, *not* the underlying mcc_asn1.
On Ultrix, the underlying memory routines use mcc_malloc, so
the confusion and leakage due to memory being allocated in one way and
freed in another is a VMS problem.
Ruth
|
| re .1:
Ok. Thanks.
I am still a bit confused by "you MUST use DYNAMIC descr" and your previous
"you should avoid to use".
Anyway, you answered my question, I heard what I wanted to hear, thanks...
Regards.
Pierre.
|
|
>I am still a bit confused by "you MUST use DYNAMIC descr" and your previous
>"you should avoid to use".
If you want ILV or some other routine to swap buffers out from underneath
you, you MUST use CLASS D in your descriptors.
If you use Class D and then go and port your DECmcc Ultrix application to
DECmcc VMS, without carefully and thoroughly changing how you allocate
the buffers you want treated like this to use the VMS LIB$SGET... routines,
you will leak memory.
So, we _recommend_ you avoid using Class D.
Its a hot button, and has been for a while.
Ruth K.
|