char * string_get(StringIndex index) { void *key; int key_len; table_get_key(gdata->string_table, index, &key, &key_len); HPROF_ASSERT(key_len>0); return (char*)key; }
int string_get_len(StringIndex index) { void *key; int key_len; table_get_key(gdata->string_table, index, &key, &key_len); HPROF_ASSERT(key_len>0); return key_len-1; }
static SiteKey* get_pkey(SiteIndex index) { void *key_ptr; int key_len; table_get_key(gdata->site_table, index, &key_ptr, &key_len); HPROF_ASSERT(key_len==sizeof(SiteKey)); HPROF_ASSERT(key_ptr!=NULL); return (SiteKey*)key_ptr; }
static ObjectKey* get_pkey(ObjectIndex index) { void *key_ptr; int key_len; table_get_key(gdata->object_table, index, (void*)&key_ptr, &key_len); HPROF_ASSERT(key_len==(int)sizeof(ObjectKey)); HPROF_ASSERT(key_ptr!=NULL); return (ObjectKey*)key_ptr; }
/* Get a void* elements array that was stored as the key. */ static void * get_key_elements(RefIndex index, jvmtiPrimitiveType primType, jint *nelements, jint *nbytes) { void *key; jint byteLen; HPROF_ASSERT(nelements!=NULL); HPROF_ASSERT(nbytes!=NULL); table_get_key(gdata->reference_table, index, &key, &byteLen); HPROF_ASSERT(byteLen>=0); HPROF_ASSERT(byteLen!=0?key!=NULL:key==NULL); *nbytes = byteLen; *nelements = byteLen / get_prim_size(primType); return key; }
/* Get a jvalue that was stored as the key. */ static jvalue get_key_value(RefIndex index) { void *key; int len; jvalue value; static jvalue empty_value; key = NULL; table_get_key(gdata->reference_table, index, &key, &len); HPROF_ASSERT(key!=NULL); HPROF_ASSERT(len==(int)sizeof(jvalue)); if ( key != NULL ) { (void)memcpy(&value, key, (int)sizeof(jvalue)); } else { value = empty_value; } return value; }