mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
std: deprecate some incorrect default initializations
In favour of newly-added decls, which can be used via decl literals.
This commit is contained in:
parent
6e3e23a941
commit
0b9fccf508
4 changed files with 36 additions and 0 deletions
|
|
@ -510,6 +510,8 @@ pub fn ArrayHashMap(
|
||||||
/// `store_hash` is `false` and the number of entries in the map is less than 9,
|
/// `store_hash` is `false` and the number of entries in the map is less than 9,
|
||||||
/// the overhead cost of using `ArrayHashMapUnmanaged` rather than `std.ArrayList` is
|
/// the overhead cost of using `ArrayHashMapUnmanaged` rather than `std.ArrayList` is
|
||||||
/// only a single pointer-sized integer.
|
/// only a single pointer-sized integer.
|
||||||
|
///
|
||||||
|
/// Default initialization of this struct is deprecated; use `.empty` instead.
|
||||||
pub fn ArrayHashMapUnmanaged(
|
pub fn ArrayHashMapUnmanaged(
|
||||||
comptime K: type,
|
comptime K: type,
|
||||||
comptime V: type,
|
comptime V: type,
|
||||||
|
|
@ -538,6 +540,12 @@ pub fn ArrayHashMapUnmanaged(
|
||||||
/// Used to detect memory safety violations.
|
/// Used to detect memory safety violations.
|
||||||
pointer_stability: std.debug.SafetyLock = .{},
|
pointer_stability: std.debug.SafetyLock = .{},
|
||||||
|
|
||||||
|
/// A map containing no keys or values.
|
||||||
|
pub const empty: Self = .{
|
||||||
|
.entries = .{},
|
||||||
|
.index_header = null,
|
||||||
|
};
|
||||||
|
|
||||||
/// Modifying the key is allowed only if it does not change the hash.
|
/// Modifying the key is allowed only if it does not change the hash.
|
||||||
/// Modifying the value is allowed.
|
/// Modifying the value is allowed.
|
||||||
/// Entry pointers become invalid whenever this ArrayHashMap is modified,
|
/// Entry pointers become invalid whenever this ArrayHashMap is modified,
|
||||||
|
|
|
||||||
|
|
@ -618,6 +618,8 @@ pub fn ArrayListUnmanaged(comptime T: type) type {
|
||||||
/// Functions that potentially allocate memory accept an `Allocator` parameter.
|
/// Functions that potentially allocate memory accept an `Allocator` parameter.
|
||||||
/// Initialize directly or with `initCapacity`, and deinitialize with `deinit`
|
/// Initialize directly or with `initCapacity`, and deinitialize with `deinit`
|
||||||
/// or use `toOwnedSlice`.
|
/// or use `toOwnedSlice`.
|
||||||
|
///
|
||||||
|
/// Default initialization of this struct is deprecated; use `.empty` instead.
|
||||||
pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?u29) type {
|
pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?u29) type {
|
||||||
if (alignment) |a| {
|
if (alignment) |a| {
|
||||||
if (a == @alignOf(T)) {
|
if (a == @alignOf(T)) {
|
||||||
|
|
@ -638,6 +640,12 @@ pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?u29) typ
|
||||||
/// additional memory.
|
/// additional memory.
|
||||||
capacity: usize = 0,
|
capacity: usize = 0,
|
||||||
|
|
||||||
|
/// An ArrayList containing no elements.
|
||||||
|
pub const empty: Self = .{
|
||||||
|
.items = &.{},
|
||||||
|
.capacity = 0,
|
||||||
|
};
|
||||||
|
|
||||||
pub const Slice = if (alignment) |a| ([]align(a) T) else []T;
|
pub const Slice = if (alignment) |a| ([]align(a) T) else []T;
|
||||||
|
|
||||||
pub fn SentinelSlice(comptime s: T) type {
|
pub fn SentinelSlice(comptime s: T) type {
|
||||||
|
|
|
||||||
|
|
@ -721,6 +721,8 @@ pub fn HashMap(
|
||||||
/// the price of handling size with u32, which should be reasonable enough
|
/// the price of handling size with u32, which should be reasonable enough
|
||||||
/// for almost all uses.
|
/// for almost all uses.
|
||||||
/// Deletions are achieved with tombstones.
|
/// Deletions are achieved with tombstones.
|
||||||
|
///
|
||||||
|
/// Default initialization of this struct is deprecated; use `.empty` instead.
|
||||||
pub fn HashMapUnmanaged(
|
pub fn HashMapUnmanaged(
|
||||||
comptime K: type,
|
comptime K: type,
|
||||||
comptime V: type,
|
comptime V: type,
|
||||||
|
|
@ -762,6 +764,13 @@ pub fn HashMapUnmanaged(
|
||||||
/// Capacity of the first grow when bootstrapping the hashmap.
|
/// Capacity of the first grow when bootstrapping the hashmap.
|
||||||
const minimal_capacity = 8;
|
const minimal_capacity = 8;
|
||||||
|
|
||||||
|
/// A map containing no keys or values.
|
||||||
|
pub const empty: Self = .{
|
||||||
|
.metadata = null,
|
||||||
|
.size = 0,
|
||||||
|
.available = 0,
|
||||||
|
};
|
||||||
|
|
||||||
// This hashmap is specially designed for sizes that fit in a u32.
|
// This hashmap is specially designed for sizes that fit in a u32.
|
||||||
pub const Size = u32;
|
pub const Size = u32;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -157,6 +157,7 @@ pub const Config = struct {
|
||||||
|
|
||||||
pub const Check = enum { ok, leak };
|
pub const Check = enum { ok, leak };
|
||||||
|
|
||||||
|
/// Default initialization of this struct is deprecated; use `.init` instead.
|
||||||
pub fn GeneralPurposeAllocator(comptime config: Config) type {
|
pub fn GeneralPurposeAllocator(comptime config: Config) type {
|
||||||
return struct {
|
return struct {
|
||||||
backing_allocator: Allocator = std.heap.page_allocator,
|
backing_allocator: Allocator = std.heap.page_allocator,
|
||||||
|
|
@ -174,6 +175,16 @@ pub fn GeneralPurposeAllocator(comptime config: Config) type {
|
||||||
|
|
||||||
const Self = @This();
|
const Self = @This();
|
||||||
|
|
||||||
|
/// The initial state of a `GeneralPurposeAllocator`, containing no allocations and backed by the system page allocator.
|
||||||
|
pub const init: Self = .{
|
||||||
|
.backing_allocator = std.heap.page_allocator,
|
||||||
|
.buckets = [1]Buckets{.{}} ** small_bucket_count,
|
||||||
|
.cur_buckets = [1]?*BucketHeader{null} ** small_bucket_count,
|
||||||
|
.large_allocations = .{},
|
||||||
|
.empty_buckets = if (config.retain_metadata) .{} else {},
|
||||||
|
.bucket_node_pool = .init(std.heap.page_allocator),
|
||||||
|
};
|
||||||
|
|
||||||
const total_requested_bytes_init = if (config.enable_memory_limit) @as(usize, 0) else {};
|
const total_requested_bytes_init = if (config.enable_memory_limit) @as(usize, 0) else {};
|
||||||
const requested_memory_limit_init = if (config.enable_memory_limit) @as(usize, math.maxInt(usize)) else {};
|
const requested_memory_limit_init = if (config.enable_memory_limit) @as(usize, math.maxInt(usize)) else {};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue