mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-03-01 11:20:41 -08:00
Improve commentary in 'field_relpos'
* src/pdumper.c (PDUMPER_MAX_OBJECT_SIZE): New macro. (field_relpos): Use PDUMPER_MAX_OBJECT_SIZE, and comment on why we require that relpos be not too large.
This commit is contained in:
parent
b29b79efd9
commit
2bcf0f097c
1 changed files with 11 additions and 1 deletions
|
|
@ -1777,6 +1777,8 @@ dump_roots (struct dump_context *ctx)
|
|||
visit_static_gc_roots (visitor);
|
||||
}
|
||||
|
||||
#define PDUMPER_MAX_OBJECT_SIZE 2048
|
||||
|
||||
static dump_off
|
||||
field_relpos (const void *in_start, const void *in_field)
|
||||
{
|
||||
|
|
@ -1784,7 +1786,15 @@ field_relpos (const void *in_start, const void *in_field)
|
|||
ptrdiff_t in_field_val = (ptrdiff_t) in_field;
|
||||
eassert (in_start_val <= in_field_val);
|
||||
ptrdiff_t relpos = in_field_val - in_start_val;
|
||||
eassert (relpos < 1024); /* Sanity check. */
|
||||
/* The following assertion attempts to detect bugs whereby IN_START
|
||||
and IN_FIELD don't point to the same object/structure, on the
|
||||
assumption that a too-large difference between them is
|
||||
suspicious. As of Apr 2019 the largest object we dump -- 'struct
|
||||
buffer' -- is slightly smaller than 1KB, and we want to leave
|
||||
some margin for future extensions. If the assertion below is
|
||||
ever violated, make sure the two pointers indeed point into the
|
||||
same object, and if so, enlarge the value of PDUMPER_MAX_OBJECT_SIZE. */
|
||||
eassert (relpos < PDUMPER_MAX_OBJECT_SIZE);
|
||||
return (dump_off) relpos;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue