Changeset 516
- Timestamp:
- 01/17/11 05:52:12 (14 years ago)
- Files:
-
- trunk/src/gcstub/gc.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/gcstub/gc.d
r515 r516 296 296 extern (C) void gc_addRoot( void* p ) 297 297 { 298 298 if( proxy is null ) 299 299 { 300 300 void** r = cast(void**) realloc( roots, 301 301 (nroots+1) * roots[0].sizeof ); 302 302 if( r is null ) 303 303 onOutOfMemoryError(); 304 304 r[nroots++] = p; 305 305 roots = r; 306 assert(0); // fix306 return; 307 307 } 308 308 return proxy.gc_addRoot( p ); 309 309 } 310 310 311 311 extern (C) void gc_addRange( void* p, size_t sz ) 312 312 { 313 313 //printf("gcstub::gc_addRange() proxy = %p\n", proxy); 314 314 if( proxy is null ) 315 315 { 316 316 Range* r = cast(Range*) realloc( ranges, 317 317 (nranges+1) * ranges[0].sizeof ); 318 318 if( r is null ) 319 319 onOutOfMemoryError(); 320 320 r[nranges].pos = p; 321 321 r[nranges].len = sz; 322 322 ranges = r; 323 323 ++nranges; 324 assert(0); // fix324 return; 325 325 } 326 326 return proxy.gc_addRange( p, sz ); 327 327 } 328 328 329 329 extern (C) void gc_removeRoot( void *p ) 330 330 { 331 331 if( proxy is null ) 332 332 { 333 333 for( size_t i = 0; i < nroots; ++i ) 334 334 {
