Lines Matching full:it
67 static void asn1_item_free(ASN1_VALUE **pval, const ASN1_ITEM *it);
72 ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it)
74 asn1_item_free(&val, it);
79 ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
81 asn1_item_free(pval, it);
86 asn1_item_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
90 const ASN1_AUX *aux = it->funcs;
97 if (it->itype != ASN1_ITYPE_PRIMITIVE && *pval == NULL)
103 switch (it->itype) {
105 if (it->templates)
106 ASN1_template_free(pval, it->templates);
108 ASN1_primitive_free(pval, it);
112 ASN1_primitive_free(pval, it);
117 i = asn1_cb(ASN1_OP_FREE_PRE, pval, it, NULL);
121 i = asn1_get_choice_selector(pval, it);
122 if ((i >= 0) && (i < it->tcount)) {
124 tt = it->templates + i;
129 asn1_cb(ASN1_OP_FREE_POST, pval, it, NULL);
135 ef = it->funcs;
137 ef->asn1_ex_free(pval, it);
142 if (asn1_do_lock(pval, -1, it) > 0)
145 i = asn1_cb(ASN1_OP_FREE_PRE, pval, it, NULL);
149 asn1_enc_cleanup(pval, it);
152 * determine the type of the field it defines. So
155 for (i = it->tcount - 1; i >= 0; i--) {
157 seqtt = asn1_do_adb(pval, &it->templates[i], 0);
164 asn1_cb(ASN1_OP_FREE_POST, pval, it, NULL);
189 ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
193 if (it != NULL && it->funcs != NULL) {
194 const ASN1_PRIMITIVE_FUNCS *pf = it->funcs;
196 pf->prim_free(pval, it);
200 /* Special case: if 'it' is NULL free contents of ASN1_TYPE */
201 if (!it) {
207 } else if (it->itype == ASN1_ITYPE_MSTRING) {
212 utype = it->utype;
223 if (it)
224 *(ASN1_BOOLEAN *)pval = it->size;