# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

# Dependencies from //build defining variables used by partition_alloc.
import("//build/config/android/config.gni")
import("//build/config/cast.gni")
import("//build/config/compiler/compiler.gni")
import("//build/config/cronet/config.gni")
import("//build/config/dcheck_always_on.gni")
import("//build/config/logging.gni")
partition_alloc_enable_arc_config = "//build/config/compiler:enable_arc"

# partition_alloc is performance critical and it should generally be optimized
# for speed, even in debug mode. WebRTC doesn't really need its debug version.
partition_alloc_remove_configs =
    [ "//build/config/compiler:default_optimization" ]
partition_alloc_add_configs = [ "//build/config/compiler:optimize_speed" ]

# Disable partition_alloc for WebRTC standalone builds.
use_partition_alloc_as_malloc_default = false
use_allocator_shim_default = false
enable_backup_ref_ptr_support_default = false
enable_backup_ref_ptr_slow_checks_default = false
enable_dangling_raw_ptr_checks_default = false

# raw_ptr behave like naked pointers, except they are always initialized. This
# avoids relying on undefined behaviors.
raw_ptr_zero_on_construct_default = true
raw_ptr_zero_on_move_default = true
raw_ptr_zero_on_destruct_default = false

# WebRTC used C++20 by default:
assert_cpp20_default = true
