:application-type argument, which can be :console or :gui. :gui allows
having GUI applications without an automatically appearing console window.
* enhancement: reduced conservativism on GENCGC platforms:
- conservative roots that point to unboxed pages must be tagged
- pointers to the start of a valid-looking object, not merely point
- to within the allocated part of the page, in order to pin the page.
+ conservative roots must be valid-looking tagged pointers or point
+ within a code object, not merely point to within the allocated part
+ of a page, in order to pin a page.
* bug fix: Windows applications without the console window no longer misbehave.
(patch by Wilfredo Velazquez, lp#1256034).
* bug fix: modular arithmetic optimizations do not stumble on dead branches
return 0;
}
+ /* If the containing object is a code object, presume that the
+ * pointer is valid, simply because it could be an unboxed return
+ * address. */
+ if (widetag_of(*start_addr) == CODE_HEADER_WIDETAG)
+ return 1;
+
return looks_like_valid_lisp_pointer_p(pointer, start_addr);
}
* expensive but important, since it vastly reduces the
* probability that random garbage will be bogusly interpreted as
* a pointer which prevents a page from moving. */
- if (!(code_page_p(addr_page_index)
- || (is_lisp_pointer((lispobj)addr) &&
- possibly_valid_dynamic_space_pointer(addr))))
+ if (!possibly_valid_dynamic_space_pointer(addr))
return 0;
#endif