Lines Matching refs:pval

68 static int asn1_item_ex_combine_new(ASN1_VALUE **pval, const ASN1_ITEM *it,
70 static void asn1_item_clear(ASN1_VALUE **pval, const ASN1_ITEM *it);
71 static void asn1_template_clear(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt);
72 static void asn1_primitive_clear(ASN1_VALUE **pval, const ASN1_ITEM *it);
84 int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
86 return asn1_item_ex_combine_new(pval, it, 0);
89 static int asn1_item_ex_combine_new(ASN1_VALUE **pval, const ASN1_ITEM *it,
114 if (!ef->asn1_ex_new(pval, it))
122 *pval = cf->asn1_new();
123 if (!*pval)
130 if (!ASN1_template_new(pval, it->templates))
132 } else if (!ASN1_primitive_new(pval, it))
137 if (!ASN1_primitive_new(pval, it))
143 i = asn1_cb(ASN1_OP_NEW_PRE, pval, it, NULL);
155 *pval = OPENSSL_malloc(it->size);
156 if (!*pval)
158 memset(*pval, 0, it->size);
160 asn1_set_choice_selector(pval, -1, it);
161 if (asn1_cb && !asn1_cb(ASN1_OP_NEW_POST, pval, it, NULL))
168 i = asn1_cb(ASN1_OP_NEW_PRE, pval, it, NULL);
180 *pval = OPENSSL_malloc(it->size);
181 if (!*pval)
183 memset(*pval, 0, it->size);
184 asn1_do_lock(pval, 0, it);
185 asn1_enc_init(pval, it);
188 pseqval = asn1_get_field_ptr(pval, tt);
192 if (asn1_cb && !asn1_cb(ASN1_OP_NEW_POST, pval, it, NULL))
203 asn1_item_combine_free(pval, it, combine);
213 asn1_item_combine_free(pval, it, combine);
224 static void asn1_item_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
233 ef->asn1_ex_clear(pval, it);
235 *pval = NULL;
240 asn1_template_clear(pval, it->templates);
242 asn1_primitive_clear(pval, it);
246 asn1_primitive_clear(pval, it);
253 *pval = NULL;
258 int ASN1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
263 asn1_template_clear(pval, tt);
269 *pval = NULL;
285 *pval = (ASN1_VALUE *)skval;
290 ret = asn1_item_ex_combine_new(pval, it, tt->flags & ASN1_TFLG_COMBINE);
299 static void asn1_template_clear(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
303 *pval = NULL;
305 asn1_item_clear(pval, ASN1_ITEM_ptr(tt->item));
313 int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
325 return pf->prim_new(pval, it);
334 *pval = (ASN1_VALUE *)OBJ_nid2obj(NID_undef);
338 *(ASN1_BOOLEAN *)pval = it->size;
342 *pval = (ASN1_VALUE *)1;
351 *pval = (ASN1_VALUE *)typ;
358 *pval = (ASN1_VALUE *)str;
361 if (*pval)
366 static void asn1_primitive_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
372 pf->prim_clear(pval, it);
374 *pval = NULL;
382 *(ASN1_BOOLEAN *)pval = it->size;
384 *pval = NULL;