diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2025-04-15 17:00:30 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2025-04-15 17:00:30 -0300 |
| commit | 3dbb1a4b894c0744a331d4319d8d1704dc4ad943 (patch) | |
| tree | 53ca693828759df1f56f7adabdeaa022a0db0fc7 /lstrlib.c | |
| parent | 3dd8ea54daa77345a8f193e871f6792722d8e131 (diff) | |
| download | lua-3dbb1a4b894c0744a331d4319d8d1704dc4ad943.tar.gz lua-3dbb1a4b894c0744a331d4319d8d1704dc4ad943.tar.bz2 lua-3dbb1a4b894c0744a331d4319d8d1704dc4ad943.zip | |
In gen. GC, some gray objects stay in gray lists
In generational collection, objects marked as touched1 stay in gray
lists between collections. This commit fixes a bug introduced in
commit 808976bb59.
Diffstat (limited to 'lstrlib.c')
| -rw-r--r-- | lstrlib.c | 4 |
1 files changed, 3 insertions, 1 deletions
| @@ -1544,8 +1544,10 @@ static KOption getdetails (Header *h, size_t totalsize, const char **fmt, | |||
| 1544 | else { | 1544 | else { |
| 1545 | if (align > h->maxalign) /* enforce maximum alignment */ | 1545 | if (align > h->maxalign) /* enforce maximum alignment */ |
| 1546 | align = h->maxalign; | 1546 | align = h->maxalign; |
| 1547 | if (l_unlikely(!ispow2(align))) /* not a power of 2? */ | 1547 | if (l_unlikely(!ispow2(align))) { /* not a power of 2? */ |
| 1548 | *ntoalign = 0; /* to avoid warnings */ | ||
| 1548 | luaL_argerror(h->L, 1, "format asks for alignment not power of 2"); | 1549 | luaL_argerror(h->L, 1, "format asks for alignment not power of 2"); |
| 1550 | } | ||
| 1549 | else { | 1551 | else { |
| 1550 | /* 'szmoda' = totalsize % align */ | 1552 | /* 'szmoda' = totalsize % align */ |
| 1551 | unsigned szmoda = cast_uint(totalsize & (align - 1)); | 1553 | unsigned szmoda = cast_uint(totalsize & (align - 1)); |
