Export of internal Abseil changes

--
d56207f5535c3aad1624e33d20777ea6e66f51a7 by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 397830482

--
7f7ff3e88e0d3cd61d63da477b2a08e61a1aeea2 by Evan Brown <ezb@google.com>:

Update implementation details comment in raw_hash_set to include information about the heap allocation's layout.

PiperOrigin-RevId: 397786239

--
fde783b12a79ae8d587d1027bc8736dff6844897 by Abseil Team <absl-team@google.com>:

Add comments on #endif to make nesting clearer

PiperOrigin-RevId: 397684219
GitOrigin-RevId: d56207f5535c3aad1624e33d20777ea6e66f51a7
Change-Id: I43dc2b5c982f1ef2b21f82b6133c49c428baf223
pull/1022/head
Abseil Team 3 years ago committed by Andy Getz
parent de71511109
commit 29f8307d8e
  1. 11
      absl/container/internal/raw_hash_set.h
  2. 11
      absl/debugging/internal/stacktrace_config.h
  3. 4
      absl/profiling/BUILD.bazel

@ -87,6 +87,17 @@
//
// This probing function guarantees that after N probes, all the groups of the
// table will be probed exactly once.
//
// The control state and slot array are stored contiguously in a shared heap
// allocation. The layout of this allocation is: `capacity()` control bytes,
// one sentinel control byte, `Group::kWidth - 1` cloned control bytes,
// <possible padding>, `capacity()` slots. The sentinel control byte is used in
// iteration so we know when we reach the end of the table. The cloned control
// bytes at the end of the table are cloned from the beginning of the table so
// groups that begin near the end of the table can see a full group. In cases in
// which there are more than `capacity()` cloned control bytes, the extra bytes
// are `kEmpty`, and these ensure that we always see at least one empty slot and
// can stop an unsuccessful search.
#ifndef ABSL_CONTAINER_INTERNAL_RAW_HASH_SET_H_
#define ABSL_CONTAINER_INTERNAL_RAW_HASH_SET_H_

@ -35,7 +35,7 @@
// Thread local support required for UnwindImpl.
#define ABSL_STACKTRACE_INL_HEADER \
"absl/debugging/internal/stacktrace_generic-inl.inc"
#endif
#endif // defined(ABSL_HAVE_THREAD_LOCAL)
#elif defined(__EMSCRIPTEN__)
#define ABSL_STACKTRACE_INL_HEADER \
@ -55,7 +55,7 @@
// Note: When using glibc this may require -funwind-tables to function properly.
#define ABSL_STACKTRACE_INL_HEADER \
"absl/debugging/internal/stacktrace_generic-inl.inc"
#endif
#endif // __has_include(<execinfo.h>)
#elif defined(__i386__) || defined(__x86_64__)
#define ABSL_STACKTRACE_INL_HEADER \
"absl/debugging/internal/stacktrace_x86-inl.inc"
@ -73,9 +73,10 @@
// Note: When using glibc this may require -funwind-tables to function properly.
#define ABSL_STACKTRACE_INL_HEADER \
"absl/debugging/internal/stacktrace_generic-inl.inc"
#endif
#endif
#endif
#endif // __has_include(<execinfo.h>)
#endif // defined(__has_include)
#endif // defined(__linux__) && !defined(__ANDROID__)
// Fallback to the empty implementation.
#if !defined(ABSL_STACKTRACE_INL_HEADER)

@ -27,7 +27,9 @@ cc_library(
hdrs = ["internal/sample_recorder.h"],
copts = ABSL_DEFAULT_COPTS,
linkopts = ABSL_DEFAULT_LINKOPTS,
visibility = ["//absl:__subpackages__"],
visibility = [
"//absl:__subpackages__",
],
deps = [
"//absl/base:config",
"//absl/base:core_headers",

Loading…
Cancel
Save