Hello,
> > The HDS locator problem was tracked down to the following call to
> > ndfMap:
> >
> > ndfMap( indf, "QUALITY", dtype, mode, &outdata[2], &nout, status );
> >
> > which looks OK, except that dtype is set to "_DOUBLE" rather than
> > "_UBYTE". (Brought to you today by cut & paste :)
> >
> > Now I would have thought that checking status would have told us that
> > something was wrong here but status is still good on return, so we had
> > no way of knowing a) that there was a problem and b) what the problem
> > was until we got the HDS locator error.
>
> Hi Andy,
>
> the data type given to ndfMap doesn't need to match that of the underlying
> data, it's a requested type, not the data type. NDF takes care of
> converting to the type you asked for, and converting it back when the data
> is released (write or update access). So this is a valid operation. Now if
> you'd tried to do an "ndfStype" on a quality component, then that would
> throw an error as the underlying data type cannot be modified.
So at least it makes sene that no error was thrown. However, this is
the procedure that was generating the extra HDS locator that didn't seem
to get cleaned up properly. If I get a chance today I'll see if I can
reproduce the problem with the test code you sent around yesterday.
cheers,
Ed
|