authorgravatar for prokop@rdck.devProkop Randáček <prokop@rdck.dev> 2024-03-26 13:00:13+01:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2024-03-26 14:00:13+02:00
log055023efb474acb4a2ff05b28d66a72f3805e34a
treeb24c98a27d0a2c04c73539318d4bfe4d7bdf1538
parent59203cb4f2a924d5815cbb9cca54a10cabf74292
signaturebadge-check Signed by PGP key B5690EEEBB952194

valgrind client request wrappers take const pointers (#19237)

* valgrind client request wrappers take const pointers * require zero terminated strings in valgrind wrappers

2 files changed, 8 insertions(+), 8 deletions(-)

lib/std/valgrind/callgrind.zig+1-1
...@@ -27,7 +27,7 @@ pub fn dumpStats() void {...@@ -27,7 +27,7 @@ pub fn dumpStats() void {
27/// The argument is appended to a string stating the reason which triggered27/// The argument is appended to a string stating the reason which triggered
28/// the dump. This string is written as a description field into the28/// the dump. This string is written as a description field into the
29/// profile data dump.29/// profile data dump.
30pub fn dumpStatsAt(pos_str: [*]u8) void {30pub fn dumpStatsAt(pos_str: [*:0]const u8) void {
31 doCallgrindClientRequestStmt(.DumpStatsAt, @intFromPtr(pos_str), 0, 0, 0, 0);31 doCallgrindClientRequestStmt(.DumpStatsAt, @intFromPtr(pos_str), 0, 0, 0, 0);
32}32}
3333
lib/std/valgrind/memcheck.zig+7-7
...@@ -29,19 +29,19 @@ fn doMemCheckClientRequestStmt(request: MemCheckClientRequest, a1: usize, a2: us...@@ -29,19 +29,19 @@ fn doMemCheckClientRequestStmt(request: MemCheckClientRequest, a1: usize, a2: us
29}29}
3030
31/// Mark memory at qzz.ptr as unaddressable for qzz.len bytes.31/// Mark memory at qzz.ptr as unaddressable for qzz.len bytes.
32pub fn makeMemNoAccess(qzz: []u8) void {32pub fn makeMemNoAccess(qzz: []const u8) void {
33 _ = doMemCheckClientRequestExpr(0, // default return33 _ = doMemCheckClientRequestExpr(0, // default return
34 .MakeMemNoAccess, @intFromPtr(qzz.ptr), qzz.len, 0, 0, 0);34 .MakeMemNoAccess, @intFromPtr(qzz.ptr), qzz.len, 0, 0, 0);
35}35}
3636
37/// Mark memory at qzz.ptr as addressable but undefined for qzz.len bytes.37/// Mark memory at qzz.ptr as addressable but undefined for qzz.len bytes.
38pub fn makeMemUndefined(qzz: []u8) void {38pub fn makeMemUndefined(qzz: []const u8) void {
39 _ = doMemCheckClientRequestExpr(0, // default return39 _ = doMemCheckClientRequestExpr(0, // default return
40 .MakeMemUndefined, @intFromPtr(qzz.ptr), qzz.len, 0, 0, 0);40 .MakeMemUndefined, @intFromPtr(qzz.ptr), qzz.len, 0, 0, 0);
41}41}
4242
43/// Mark memory at qzz.ptr as addressable and defined or qzz.len bytes.43/// Mark memory at qzz.ptr as addressable and defined or qzz.len bytes.
44pub fn makeMemDefined(qzz: []u8) void {44pub fn makeMemDefined(qzz: []const u8) void {
45 _ = doMemCheckClientRequestExpr(0, // default return45 _ = doMemCheckClientRequestExpr(0, // default return
46 .MakeMemDefined, @intFromPtr(qzz.ptr), qzz.len, 0, 0, 0);46 .MakeMemDefined, @intFromPtr(qzz.ptr), qzz.len, 0, 0, 0);
47}47}
...@@ -49,7 +49,7 @@ pub fn makeMemDefined(qzz: []u8) void {...@@ -49,7 +49,7 @@ pub fn makeMemDefined(qzz: []u8) void {
49/// Similar to makeMemDefined except that addressability is49/// Similar to makeMemDefined except that addressability is
50/// not altered: bytes which are addressable are marked as defined,50/// not altered: bytes which are addressable are marked as defined,
51/// but those which are not addressable are left unchanged.51/// but those which are not addressable are left unchanged.
52pub fn makeMemDefinedIfAddressable(qzz: []u8) void {52pub fn makeMemDefinedIfAddressable(qzz: []const u8) void {
53 _ = doMemCheckClientRequestExpr(0, // default return53 _ = doMemCheckClientRequestExpr(0, // default return
54 .MakeMemDefinedIfAddressable, @intFromPtr(qzz.ptr), qzz.len, 0, 0, 0);54 .MakeMemDefinedIfAddressable, @intFromPtr(qzz.ptr), qzz.len, 0, 0, 0);
55}55}
...@@ -58,7 +58,7 @@ pub fn makeMemDefinedIfAddressable(qzz: []u8) void {...@@ -58,7 +58,7 @@ pub fn makeMemDefinedIfAddressable(qzz: []u8) void {
58/// string which is included in any messages pertaining to addresses58/// string which is included in any messages pertaining to addresses
59/// within the specified memory range. Has no other effect on the59/// within the specified memory range. Has no other effect on the
60/// properties of the memory range.60/// properties of the memory range.
61pub fn createBlock(qzz: []u8, desc: [*]u8) usize {61pub fn createBlock(qzz: []const u8, desc: [*:0]const u8) usize {
62 return doMemCheckClientRequestExpr(0, // default return62 return doMemCheckClientRequestExpr(0, // default return
63 .CreateBlock, @intFromPtr(qzz.ptr), qzz.len, @intFromPtr(desc), 0, 0);63 .CreateBlock, @intFromPtr(qzz.ptr), qzz.len, @intFromPtr(desc), 0, 0);
64}64}
...@@ -74,7 +74,7 @@ pub fn discard(blkindex: usize) bool {...@@ -74,7 +74,7 @@ pub fn discard(blkindex: usize) bool {
74/// If suitable addressability is not established, Valgrind prints an74/// If suitable addressability is not established, Valgrind prints an
75/// error message and returns the address of the first offending byte.75/// error message and returns the address of the first offending byte.
76/// Otherwise it returns zero.76/// Otherwise it returns zero.
77pub fn checkMemIsAddressable(qzz: []u8) usize {77pub fn checkMemIsAddressable(qzz: []const u8) usize {
78 return doMemCheckClientRequestExpr(0, .CheckMemIsAddressable, @intFromPtr(qzz.ptr), qzz.len, 0, 0, 0);78 return doMemCheckClientRequestExpr(0, .CheckMemIsAddressable, @intFromPtr(qzz.ptr), qzz.len, 0, 0, 0);
79}79}
8080
...@@ -82,7 +82,7 @@ pub fn checkMemIsAddressable(qzz: []u8) usize {...@@ -82,7 +82,7 @@ pub fn checkMemIsAddressable(qzz: []u8) usize {
82/// qzz.len bytes. If suitable addressability and definedness are not82/// qzz.len bytes. If suitable addressability and definedness are not
83/// established, Valgrind prints an error message and returns the83/// established, Valgrind prints an error message and returns the
84/// address of the first offending byte. Otherwise it returns zero.84/// address of the first offending byte. Otherwise it returns zero.
85pub fn checkMemIsDefined(qzz: []u8) usize {85pub fn checkMemIsDefined(qzz: []const u8) usize {
86 return doMemCheckClientRequestExpr(0, .CheckMemIsDefined, @intFromPtr(qzz.ptr), qzz.len, 0, 0, 0);86 return doMemCheckClientRequestExpr(0, .CheckMemIsDefined, @intFromPtr(qzz.ptr), qzz.len, 0, 0, 0);
87}87}
8888