Lines Matching refs:msp

40 static void md_free_string(mmd_t *mdp, md_string_t *msp);
60 md_string_t *msp; in md_find_string() local
68 CHAIN_ITER(mdp->string_list, msp) { in md_find_string()
69 if (msp->hash == hash && strcmp(msp->strp, strp) == 0) in md_find_string()
70 return (msp); in md_find_string()
79 md_string_t *msp; in md_new_string() local
82 msp = md_find_string(mdp, strp, &hash); in md_new_string()
83 if (msp == NULL) { in md_new_string()
84 msp = calloc(1, sizeof (md_string_t)); in md_new_string()
85 if (msp == NULL) in md_new_string()
87 msp->strp = strdup(strp); in md_new_string()
88 if (msp->strp == NULL) { in md_new_string()
89 free(msp); in md_new_string()
92 msp->size = strlen(strp) + 1; in md_new_string()
93 msp->hash = hash; in md_new_string()
94 msp->ref_cnt = 0; in md_new_string()
95 msp->build_offset = MD_OFFSET_UNDEF; in md_new_string()
96 CHAIN_ADD(mdp->string_list, msp); in md_new_string()
98 msp->ref_cnt++; in md_new_string()
100 return (msp); in md_new_string()
345 md_free_string(mmd_t *mdp, md_string_t *msp) in md_free_string() argument
347 ASSERT(msp->ref_cnt > 0); in md_free_string()
349 msp->ref_cnt--; in md_free_string()
351 if (msp->ref_cnt == 0) { in md_free_string()
352 free(msp->strp); in md_free_string()
353 mdp->string_list.startp = msp->nextp; in md_free_string()
354 free(msp); in md_free_string()
432 md_string_t *msp; in md_gen_bin() local
446 for (msp = CHAIN_START(mdp->string_list); msp != NULL; in md_gen_bin()
447 msp = msp->nextp) { in md_gen_bin()
448 msp->build_offset = offset; in md_gen_bin()
449 offset += msp->size; in md_gen_bin()
543 for (msp = CHAIN_START(mdp->string_list); msp != NULL; in md_gen_bin()
544 msp = msp->nextp) { in md_gen_bin()
545 (void) memcpy(string_bufferp + msp->build_offset, msp->strp, in md_gen_bin()
546 msp->size); in md_gen_bin()