Beispiel #1
0
 /* Generate a random address inside a valid marked heap object. */
 GC_API void * GC_CALL GC_generate_random_valid_address(void)
 {
   ptr_t result;
   ptr_t base;
   do {
     result = GC_generate_random_heap_address();
     base = GC_base(result);
   } while (base == 0 || !GC_is_marked(base));
   return result;
 }
Beispiel #2
0
  /* Generate a random address inside a valid marked heap object. */
  void *GC_generate_random_valid_address(void)
  {
    ptr_t result;
    ptr_t base;
    for (;;) {
	result = GC_generate_random_heap_address();
  	base = GC_base(result);
	if (0 == base) continue;
	if (!GC_is_marked(base)) continue;
	return result;
    }
  }