Run Format

Text file src/pkg/runtime/hashmap.h

     1	// Copyright 2009 The Go Authors. All rights reserved.
     2	// Use of this source code is governed by a BSD-style
     3	// license that can be found in the LICENSE file.
     4	
     5	struct Hmap;		/* opaque */
     6	
     7	/* Used by the garbage collector */
     8	struct hash_gciter
     9	{
    10		Hmap *h;
    11		int32 phase;
    12		uintptr bucket;
    13		struct Bucket *b;
    14		uintptr i;
    15	};
    16	
    17	// this data is used by the garbage collector to keep the map's
    18	// internal structures from being reclaimed.  The iterator must
    19	// return in st every live object (ones returned by mallocgc) so
    20	// that those objects won't be collected, and it must return
    21	// every key & value in key_data/val_data so they can get scanned
    22	// for pointers they point to.  Note that if you malloc storage
    23	// for keys and values, you need to do both.
    24	struct hash_gciter_data
    25	{
    26		uint8 *st;			/* internal structure, or nil */
    27		uint8 *key_data;		/* key data, or nil */
    28		uint8 *val_data;		/* value data, or nil */
    29		bool indirectkey;		/* storing pointers to keys */
    30		bool indirectval;		/* storing pointers to values */
    31	};
    32	bool hash_gciter_init (struct Hmap *h, struct hash_gciter *it);
    33	bool hash_gciter_next (struct hash_gciter *it, struct hash_gciter_data *data);

View as plain text