View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000565 | LDMud 3.5 | Implementation | public | 2008-09-09 07:25 | 2018-01-30 03:59 |
Reporter | zesstra | Assigned To | zesstra | ||
Priority | low | Severity | minor | Reproducibility | N/A |
Status | resolved | Resolution | fixed | ||
Platform | x86_64 | OS | MacOS X | OS Version | 10.5.x |
Target Version | 3.5.0 | Fixed in Version | 3.5.0 | ||
Summary | 0000565: Hash in store_prog_string() assumes 32 bit pointers | ||||
Description | The hash calculation in store_prog_string() and delete_prog_string() assumes pointers which fit into 32 bits. On LP64 platforms the distribution of the hashes will be impaired once strings are stored above 4GB (which is always the case on MacOS X, because the process address space contains a zero-page from 0 to 4GB). Although it only reduces effiency in compilation, the hash calculation should be changed. | ||||
Tags | No tags attached. | ||||
|
The hash calculation in ptrtable.c as well: /* TODO: This code assumes that a pointer is 32 Bits long */ hash = key ^ key >> 16; hash ^= hash >> 8; hash &= (PTABLE_SIZE-1); mask = 1 << (hash & (CHAR_BIT-1)); /* TODO: this statement assumes CHAR_BIT == 8 */ usage_p = ptable->hash_usage + (hash >> 2 & 0000001:0000001); (The assumption that CHAR_BIT is always 8 is also done in bytecode.h, right now the driver does anyway not work on platforms where CHAR_BIT != 8.) Edit: this issue was separated into 0000804 |
Date Modified | Username | Field | Change |
---|---|---|---|
2008-09-09 07:25 | zesstra | New Issue | |
2008-09-09 07:25 | zesstra | Status | new => assigned |
2008-09-09 07:25 | zesstra | Assigned To | => zesstra |
2008-09-09 07:25 | zesstra | Relationship added | child of 0000564 |
2008-09-09 07:27 | zesstra | Relationship added | child of 0000556 |
2008-09-16 14:48 | zesstra | Note Added: 0000785 | |
2010-07-14 02:39 | zesstra | Target Version | => 3.5.0 |
2012-06-06 22:17 | zesstra | Source_changeset_attached | => ldmud.git master 4f443d2a |
2012-06-06 22:23 | zesstra | Fixed in Version | => 3.5.0 |
2012-06-07 15:56 | zesstra | Issue cloned: 0000804 | |
2012-06-07 15:57 | zesstra | Note Edited: 0000785 | |
2012-06-07 15:57 | zesstra | Status | assigned => resolved |
2012-06-07 15:57 | zesstra | Resolution | open => fixed |
2018-01-29 18:59 | zesstra | Source_changeset_attached | => ldmud.git master 4f443d2a |
2018-01-29 21:57 | zesstra | Source_changeset_attached | => ldmud.git master 4f443d2a |
2018-01-30 03:59 | zesstra | Source_changeset_attached | => ldmud.git master 4f443d2a |