@@ -54,6 +54,7 @@ jl_genericmemory_t *_new_genericmemory_(jl_value_t *mtype, size_t nel, int8_t is
54
54
tot = sizeof (jl_genericmemory_t ) + sizeof (void * );
55
55
}
56
56
m = (jl_genericmemory_t * )jl_gc_alloc (ct -> ptls , tot , mtype );
57
+ PTR_PIN (m );
57
58
58
59
if (pooled ) {
59
60
data = (char * )m + JL_SMALL_BYTE_ALIGNMENT ;
@@ -107,9 +108,11 @@ JL_DLLEXPORT jl_genericmemory_t *jl_string_to_genericmemory(jl_value_t *str)
107
108
jl_task_t * ct = jl_current_task ;
108
109
int tsz = sizeof (jl_genericmemory_t ) + sizeof (void * );
109
110
jl_genericmemory_t * m = (jl_genericmemory_t * )jl_gc_alloc (ct -> ptls , tsz , jl_memory_uint8_type );
111
+ PTR_PIN (m );
110
112
m -> length = jl_string_len (str );
111
113
m -> ptr = jl_string_data (str );
112
114
jl_genericmemory_data_owner_field (m ) = str ;
115
+ PTR_PIN (str );
113
116
return m ;
114
117
}
115
118
@@ -160,6 +163,7 @@ JL_DLLEXPORT jl_genericmemory_t *jl_ptr_to_genericmemory(jl_value_t *mtype, void
160
163
jl_exceptionf (jl_argumenterror_type , "invalid GenericMemory size: too large for system address width" );
161
164
int tsz = sizeof (jl_genericmemory_t ) + sizeof (void * );
162
165
m = (jl_genericmemory_t * )jl_gc_alloc (ct -> ptls , tsz , mtype );
166
+ PTR_PIN (m );
163
167
m -> ptr = data ;
164
168
m -> length = nel ;
165
169
jl_genericmemory_data_owner_field (m ) = own_buffer ? (jl_value_t * )m : NULL ;
@@ -249,9 +253,11 @@ JL_DLLEXPORT jl_genericmemory_t *jl_genericmemory_slice(jl_genericmemory_t *mem,
249
253
}
250
254
jl_task_t * ct = jl_current_task ;
251
255
jl_genericmemory_t * newmem = (jl_genericmemory_t * )jl_gc_alloc (ct -> ptls , sizeof (jl_genericmemory_t ) + sizeof (void * ), dt );
256
+ PTR_PIN (newmem );
252
257
newmem -> length = len ;
253
258
newmem -> ptr = data ;
254
259
jl_genericmemory_data_owner_field (newmem ) = jl_genericmemory_owner (mem );
260
+ PTR_PIN (jl_genericmemory_owner (mem ));
255
261
return newmem ;
256
262
}
257
263
0 commit comments