void *
ss_blob_bound_m(ss_blob_t *blob, /* Blob to query. */
hid_t *mtype, /* OUT: Optional pointer for memory datatype, duplicated from that stored in
* the blob. */
hid_t *mspace /* OUT: Optional pointer for memory dataspace (extent and selection),
* duplicated from that stored in the blob. */
)
{
SS_ENTER(ss_blob_bound_m, voidP);
void *retval=NULL;
hid_t type=-1;
SS_ASSERT_MEM(blob, ss_blob_t);
if (NULL==(retval=SS_BLOB(blob)->m.mem)) SS_ERROR_FMT(USAGE, ("blob is not bound to memory"));
if (mtype && (*mtype = type = H5Tcopy(SS_BLOB(blob)->m.mtype))<0) SS_ERROR(HDF5);
if (mspace && (*mspace = H5Scopy(SS_BLOB(blob)->m.mspace))<0) SS_ERROR(HDF5);
SS_CLEANUP:
if (type>0) H5Tclose(type);
SS_LEAVE(retval);
}