Lines Matching refs:it
68 void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it)
70 asn1_item_combine_free(&val, it, 0);
73 void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
75 asn1_item_combine_free(pval, it, 0);
78 void asn1_item_combine_free(ASN1_VALUE **pval, const ASN1_ITEM *it, int combine)
83 const ASN1_AUX *aux = it->funcs;
88 if ((it->itype != ASN1_ITYPE_PRIMITIVE) && !*pval)
95 switch (it->itype) {
98 if (it->templates)
99 ASN1_template_free(pval, it->templates);
101 ASN1_primitive_free(pval, it);
105 ASN1_primitive_free(pval, it);
110 i = asn1_cb(ASN1_OP_FREE_PRE, pval, it, NULL);
114 i = asn1_get_choice_selector(pval, it);
115 if ((i >= 0) && (i < it->tcount)) {
117 tt = it->templates + i;
122 asn1_cb(ASN1_OP_FREE_POST, pval, it, NULL);
130 cf = it->funcs;
136 ef = it->funcs;
138 ef->asn1_ex_free(pval, it);
143 if (asn1_do_lock(pval, -1, it) > 0)
146 i = asn1_cb(ASN1_OP_FREE_PRE, pval, it, NULL);
150 asn1_enc_free(pval, it);
153 * field and we wont be able to determine the type of the field it
156 tt = it->templates + it->tcount - 1;
157 for (i = 0; i < it->tcount; tt--, i++) {
166 asn1_cb(ASN1_OP_FREE_POST, pval, it, NULL);
192 void ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
195 if (it) {
197 pf = it->funcs;
199 pf->prim_free(pval, it);
203 /* Special case: if 'it' is NULL free contents of ASN1_TYPE */
204 if (!it) {
210 } else if (it->itype == ASN1_ITYPE_MSTRING) {
215 utype = it->utype;
226 if (it)
227 *(ASN1_BOOLEAN *)pval = it->size;