X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=types%2Farray.c;h=494210827ff80ab301479b6aa4537d49c24684b7;hb=9872e818aa1a1d9fcf3221db817b70c109248914;hp=87b2083bcfdf4120ff41976ae6aa4689f887ac51;hpb=343c801f4e026a36093f654bdf88749d25f75fb4;p=babeltrace.git diff --git a/types/array.c b/types/array.c index 87b2083b..49421082 100644 --- a/types/array.c +++ b/types/array.c @@ -16,10 +16,19 @@ * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. */ #include #include +#include #include static @@ -75,8 +84,7 @@ struct declaration_array * array_declaration->elem = elem_declaration; array_declaration->scope = new_declaration_scope(parent_scope); declaration->id = CTF_TYPE_ARRAY; - /* No need to align the array, the first element will align itself */ - declaration->alignment = 1; + declaration->alignment = elem_declaration->alignment; declaration->declaration_free = _array_declaration_free; declaration->definition_new = _array_definition_new; declaration->definition_free = _array_definition_free; @@ -206,7 +214,18 @@ struct definition *array_index(struct definition_array *array, uint64_t i) return g_ptr_array_index(array->elems, i); } -GString *get_char_array(struct definition *field) +int get_array_len(const struct definition *field) +{ + struct definition_array *array_definition; + struct declaration_array *array_declaration; + + array_definition = container_of(field, struct definition_array, p); + array_declaration = array_definition->declaration; + + return array_declaration->len; +} + +GString *get_char_array(const struct definition *field) { struct definition_array *array_definition; struct declaration_array *array_declaration;