// Protocol Buffers - Google's data interchange format // Copyright 2023 Google LLC. All rights reserved. // // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file or at // https://developers.google.com/open-source/licenses/bsd use std::alloc::{alloc, Layout}; #[no_mangle] extern "C" fn __pb_rust_alloc(size: usize, align: usize) -> *mut u8 { if size == 0 { // A 0-sized layout is legal but the global allocator isn't required to support // it so return a dangling pointer instead. std::ptr::null_mut::().wrapping_add(align) } else { let layout = Layout::from_size_align(size, align).unwrap(); unsafe { alloc(layout) } } }