github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/third_party/gofrontend/libgo/runtime/go-map-len.c (about)

     1  /* go-map-len.c -- return the length of a map.
     2  
     3     Copyright 2009 The Go Authors. All rights reserved.
     4     Use of this source code is governed by a BSD-style
     5     license that can be found in the LICENSE file.  */
     6  
     7  #include <stddef.h>
     8  
     9  #include "runtime.h"
    10  #include "go-assert.h"
    11  #include "map.h"
    12  
    13  /* Return the length of a map.  This could be done inline, of course,
    14     but I'm doing it as a function for now to make it easy to change
    15     the map structure.  */
    16  
    17  intgo
    18  __go_map_len (struct __go_map *map)
    19  {
    20    if (map == NULL)
    21      return 0;
    22    __go_assert (map->__element_count
    23  	       == (uintptr_t) (intgo) map->__element_count);
    24    return map->__element_count;
    25  }