diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/coding.c | 4 | ||||
-rw-r--r-- | lib/decoding.c | 20 | ||||
-rw-r--r-- | lib/element.c | 11 | ||||
-rw-r--r-- | lib/int.h | 1 | ||||
-rw-r--r-- | lib/parser_aux.c | 18 | ||||
-rw-r--r-- | lib/parser_aux.h | 13 | ||||
-rw-r--r-- | lib/structure.c | 22 |
7 files changed, 38 insertions, 51 deletions
diff --git a/lib/coding.c b/lib/coding.c index 78615a1..0c0f69c 100644 --- a/lib/coding.c +++ b/lib/coding.c @@ -1253,7 +1253,7 @@ asn1_der_coding (asn1_node element, const char *name, void *ider, int *len, continue; } else - p = _asn1_get_up (p); + p = _asn1_find_up (p); move = UP; } if (move == UP) @@ -1328,7 +1328,7 @@ asn1_der_coding (asn1_node element, const char *name, void *ider, int *len, move = UP; } if (move == UP) - p = _asn1_get_up (p); + p = _asn1_find_up (p); } *len = counter; diff --git a/lib/decoding.c b/lib/decoding.c index caf1eb4..7a86182 100644 --- a/lib/decoding.c +++ b/lib/decoding.c @@ -710,7 +710,7 @@ _asn1_delete_not_used (asn1_node node) { p2 = _asn1_find_left (p); if (!p2) - p2 = _asn1_get_up (p); + p2 = _asn1_find_up (p); } asn1_delete_structure (&p); p = p2; @@ -733,7 +733,7 @@ _asn1_delete_not_used (asn1_node node) { while (1) { - p = _asn1_get_up (p); + p = _asn1_find_up (p); if (p == node) { p = NULL; @@ -1050,7 +1050,7 @@ asn1_der_decoding2 (asn1_node *element, const void *ider, int *max_ider_len, { if (p->type & CONST_SET) { - p2 = _asn1_get_up (p); + p2 = _asn1_find_up (p); len2 = p2->tmp_ival; if (len2 == -1) { @@ -1106,7 +1106,7 @@ asn1_der_decoding2 (asn1_node *element, const void *ider, int *max_ider_len, if ((p->type & CONST_OPTION) || (p->type & CONST_DEFAULT)) { - p2 = _asn1_get_up (p); + p2 = _asn1_find_up (p); len2 = p2->tmp_ival; if (counter == len2) { @@ -1169,7 +1169,7 @@ asn1_der_decoding2 (asn1_node *element, const void *ider, int *max_ider_len, if ((p->type & CONST_OPTION) || (p->type & CONST_DEFAULT)) { - p2 = _asn1_get_up (p); + p2 = _asn1_find_up (p); len2 = p2->tmp_ival; if ((len2 != -1) && (counter > len2)) @@ -1597,7 +1597,7 @@ asn1_der_decoding2 (asn1_node *element, const void *ider, int *max_ider_len, move = UP; } if (move == UP) - p = _asn1_get_up (p); + p = _asn1_find_up (p); } _asn1_delete_not_used (*element); @@ -1810,7 +1810,7 @@ asn1_expand_any_defined_by (asn1_node definitions, asn1_node * element) break; } - p3 = _asn1_get_up (p); + p3 = _asn1_find_up (p); if (!p3) { @@ -1830,8 +1830,8 @@ asn1_expand_any_defined_by (asn1_node definitions, asn1_node * element) (p3->value == NULL)) { - p3 = _asn1_get_up (p); - p3 = _asn1_get_up (p3); + p3 = _asn1_find_up (p); + p3 = _asn1_find_up (p3); if (!p3) { @@ -1966,7 +1966,7 @@ asn1_expand_any_defined_by (asn1_node definitions, asn1_node * element) { while (1) { - p = _asn1_get_up (p); + p = _asn1_find_up (p); if (p == *element) { p = NULL; diff --git a/lib/element.c b/lib/element.c index 321302a..7976285 100644 --- a/lib/element.c +++ b/lib/element.c @@ -52,7 +52,7 @@ _asn1_hierarchical_name (asn1_node node, char *name, int name_size) _asn1_str_cat (name, name_size, "."); _asn1_str_cat (name, name_size, tmp_name); } - p = _asn1_get_up (p); + p = _asn1_find_up (p); } if (name[0] == 0) @@ -154,9 +154,12 @@ _asn1_append_sequence_set (asn1_node node, asn1_node *ptail) p = p->right; p2 = _asn1_copy_structure3 (p); - if (ptail == NULL || *ptail == NULL || (*ptail)->up != p->up) - while (p->right) { - p = p->right; + if (ptail == NULL || *ptail == NULL) + { + while (p->right) + { + p = p->right; + } } else { @@ -51,7 +51,6 @@ struct asn1_node_st unsigned int type; /* Node type */ unsigned char *value; /* Node value */ int value_len; - asn1_node up; /* Pointer to the parent node */ asn1_node down; /* Pointer to the son node */ asn1_node right; /* Pointer to the brother node */ asn1_node left; /* Pointer to the next list element */ diff --git a/lib/parser_aux.c b/lib/parser_aux.c index da9a388..8e85bf8 100644 --- a/lib/parser_aux.c +++ b/lib/parser_aux.c @@ -425,11 +425,7 @@ _asn1_set_right (asn1_node node, asn1_node right) return node; node->right = right; if (right) - { - right->left = node; - if (right->up == NULL) - right->up = node->up; - } + right->left = node; return node; } @@ -625,7 +621,7 @@ _asn1_change_integer_value (asn1_node node) { while (1) { - p = _asn1_get_up (p); + p = _asn1_find_up (p); if (p == node) { p = NULL; @@ -753,7 +749,7 @@ _asn1_expand_object_id (asn1_node node) move = UP; } if (move == UP) - p = _asn1_get_up (p); + p = _asn1_find_up (p); } @@ -825,7 +821,7 @@ _asn1_expand_object_id (asn1_node node) move = UP; } if (move == UP) - p = _asn1_get_up (p); + p = _asn1_find_up (p); } return ASN1_SUCCESS; @@ -895,7 +891,7 @@ _asn1_type_set_config (asn1_node node) move = UP; } if (move == UP) - p = _asn1_get_up (p); + p = _asn1_find_up (p); } return ASN1_SUCCESS; @@ -992,7 +988,7 @@ _asn1_check_identifier (asn1_node node) { while (1) { - p = _asn1_get_up (p); + p = _asn1_find_up (p); if (p == node) { p = NULL; @@ -1052,7 +1048,7 @@ _asn1_set_default_tag (asn1_node node) { while (1) { - p = _asn1_get_up (p); + p = _asn1_find_up (p); if (p == node) { p = NULL; diff --git a/lib/parser_aux.h b/lib/parser_aux.h index 437f1c8..10b864b 100644 --- a/lib/parser_aux.h +++ b/lib/parser_aux.h @@ -58,14 +58,6 @@ char *_asn1_ltostr (long v, char str[LTOSTR_MAX_SIZE]); asn1_node _asn1_find_up (asn1_node node); -inline static asn1_node _asn1_get_up(asn1_node node) -{ - if (node && node->up) - return node->up; - else - return _asn1_find_up(node); -} - int _asn1_change_integer_value (asn1_node node); int _asn1_expand_object_id (asn1_node node); @@ -108,10 +100,7 @@ _asn1_set_down (asn1_node node, asn1_node down) return node; node->down = down; if (down) - { - down->left = node; - down->up = node; - } + down->left = node; return node; } diff --git a/lib/structure.c b/lib/structure.c index fc33547..01715b1 100644 --- a/lib/structure.c +++ b/lib/structure.c @@ -134,7 +134,7 @@ _asn1_create_static_structure (asn1_node pointer, char *output_file_name, { while (1) { - p = _asn1_get_up (p); + p = _asn1_find_up (p); if (p == pointer) { p = NULL; @@ -223,7 +223,7 @@ asn1_array2tree (const asn1_static_node * array, asn1_node * definitions, if (p_last == *definitions) break; - p_last = _asn1_get_up (p_last); + p_last = _asn1_find_up (p_last); if (p_last == NULL) break; @@ -323,7 +323,7 @@ asn1_delete_structure2 (asn1_node * structure, unsigned int flags) p2 = p->right; if (p != *structure) { - p3 = _asn1_get_up (p); + p3 = _asn1_find_up (p); _asn1_set_down (p3, p2); _asn1_remove_node (p, flags); p = p3; @@ -333,7 +333,7 @@ asn1_delete_structure2 (asn1_node * structure, unsigned int flags) p3 = _asn1_find_left (p); if (!p3) { - p3 = _asn1_get_up (p); + p3 = _asn1_find_up (p); if (p3) _asn1_set_down (p3, p2); else @@ -381,7 +381,7 @@ asn1_delete_element (asn1_node structure, const char *element_name) p3 = _asn1_find_left (source_node); if (!p3) { - p3 = _asn1_get_up (source_node); + p3 = _asn1_find_up (source_node); if (p3) _asn1_set_down (p3, p2); else if (source_node->right) @@ -443,8 +443,8 @@ _asn1_copy_structure3 (asn1_node source_node) else { move = UP; - p_s = _asn1_get_up (p_s); - p_d = _asn1_get_up (p_d); + p_s = _asn1_find_up (p_s); + p_d = _asn1_find_up (p_d); } } while (p_s != source_node); @@ -544,7 +544,7 @@ _asn1_type_choice_config (asn1_node node) move = UP; } if (move == UP) - p = _asn1_get_up (p); + p = _asn1_find_up (p); } return ASN1_SUCCESS; @@ -595,7 +595,7 @@ _asn1_expand_identifier (asn1_node * node, asn1_node root) _asn1_set_right (p3, p2); else { - p3 = _asn1_get_up (p); + p3 = _asn1_find_up (p); if (p3) _asn1_set_down (p3, p2); else @@ -651,7 +651,7 @@ _asn1_expand_identifier (asn1_node * node, asn1_node root) move = UP; } if (move == UP) - p = _asn1_get_up (p); + p = _asn1_find_up (p); } return ASN1_SUCCESS; @@ -1019,7 +1019,7 @@ asn1_print_structure (FILE * out, asn1_node structure, const char *name, { while (1) { - p = _asn1_get_up (p); + p = _asn1_find_up (p); if (p == root) { p = NULL; |