LCOV - code coverage report
Current view: top level - ccode - valaccodememberaccess.vala (source / functions) Coverage Total Hit
Test: vala 0.57.0.298-a8cae1 Lines: 100.0 % 18 18
Test Date: 2024-04-25 11:34:36 Functions: - 0 0

            Line data    Source code
       1              : /* valaccodememberaccess.vala
       2              :  *
       3              :  * Copyright (C) 2006-2008  Jürg Billeter
       4              :  *
       5              :  * This library is free software; you can redistribute it and/or
       6              :  * modify it under the terms of the GNU Lesser General Public
       7              :  * License as published by the Free Software Foundation; either
       8              :  * version 2.1 of the License, or (at your option) any later version.
       9              : 
      10              :  * This library is distributed in the hope that it will be useful,
      11              :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      12              :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      13              :  * Lesser General Public License for more details.
      14              : 
      15              :  * You should have received a copy of the GNU Lesser General Public
      16              :  * License along with this library; if not, write to the Free Software
      17              :  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
      18              :  *
      19              :  * Author:
      20              :  *      Jürg Billeter <j@bitron.ch>
      21              :  */
      22              : 
      23              : using GLib;
      24              : 
      25              : /**
      26              :  * Represents an access to a struct member in the C code.
      27              :  */
      28          543 : public class Vala.CCodeMemberAccess : CCodeExpression {
      29              :         /**
      30              :          * The parent of the member.
      31              :          */
      32        67078 :         public CCodeExpression inner { get; set; }
      33              : 
      34              :         /**
      35              :          * The name of the member.
      36              :          */
      37       100616 :         public string member_name { get; set; }
      38              : 
      39              :         /**
      40              :          * Specifies whether the member access happens by pointer dereferencing.
      41              :          */
      42        33540 :         public bool is_pointer { get; set; }
      43              : 
      44        13998 :         public CCodeMemberAccess (CCodeExpression container, string member, bool pointer = false) {
      45         4666 :                 inner = container;
      46         4666 :                 member_name = member;
      47         4666 :                 is_pointer = pointer;
      48              :         }
      49              : 
      50        86616 :         public CCodeMemberAccess.pointer (CCodeExpression container, string member) {
      51        28872 :                 inner = container;
      52        28872 :                 member_name = member;
      53        28872 :                 is_pointer = true;
      54              :         }
      55              : 
      56        40834 :         public override void write (CCodeWriter writer) {
      57        40834 :                 inner.write_inner (writer);
      58        40834 :                 if (is_pointer) {
      59        33480 :                         writer.write_string ("->");
      60              :                 } else {
      61         7354 :                         writer.write_string (".");
      62              :                 }
      63        40834 :                 writer.write_string (member_name);
      64              :         }
      65              : }
        

Generated by: LCOV version 2.0-1