1 /*****************************************************************************
3 # Copyright 2019 AT&T Intellectual Property *
5 # Licensed under the Apache License, Version 2.0 (the "License"); *
6 # you may not use this file except in compliance with the License. *
7 # You may obtain a copy of the License at *
9 # http://www.apache.org/licenses/LICENSE-2.0 *
11 # Unless required by applicable law or agreed to in writing, software *
12 # distributed under the License is distributed on an "AS IS" BASIS, *
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
14 # See the License for the specific language governing permissions and *
15 # limitations under the License. *
17 ******************************************************************************/
20 * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
21 * Redistribution and modifications are permitted subject to BSD license.
23 #include <asn_internal.h>
24 #include <asn_SEQUENCE_OF.h>
26 typedef A_SEQUENCE_OF(void) asn_sequence;
29 asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free) {
30 asn_sequence *as = (asn_sequence *)asn_sequence_of_x;
36 if(number < 0 || number >= as->count)
37 return; /* Nothing to delete */
39 if(_do_free && as->free) {
40 ptr = as->array[number];
46 * Shift all elements to the left to hide the gap.
49 for(n = number; n < as->count; n++)
50 as->array[n] = as->array[n+1];
53 * Invoke the third-party function only when the state
54 * of the parent structure is consistent.
56 if(ptr) as->free(ptr);