Euphoria
Ticket #775:
Memory leak with native type tests
-
Reported by
mattlewis
Jul 25, 2012
sequence s = "abc"
? integer( s[1] )
? sequence( s[1] )
? atom( s[1] )
? object( s[1] )
Corresponding IL code:
SubProgram [bug.ex-<TopLevel>:00134]
[bug.ex:2] (2)
1: 018 141 140 # [LIT "abc":141] => [s:140]
[bug.ex:3] (3)
4: 109 140 # GLOBAL_INIT_CHECK: [s:140]
6: 025 140 136 142 # RHS_SUBS: [s:140] sub [LIT 1:136] => [_temp_:142]
10: 094 142 143 # IS_AN_INTEGER: [_temp_:142] [_temp_:143]
13: 036 136 143 # QPRINT: [_temp_:143]
[bug.ex:4] (4)
16: 109 140 # GLOBAL_INIT_CHECK: [s:140]
18: 025 140 136 144 # RHS_SUBS: [s:140] sub [LIT 1:136] => [_temp_:144]
22: 068 144 145 # IS_A_SEQUENCE: [_temp_:144] [_temp_:145]
25: 036 136 145 # QPRINT: [_temp_:145]
[bug.ex:5] (5)
28: 109 140 # GLOBAL_INIT_CHECK: [s:140]
30: 025 140 136 146 # RHS_SUBS: [s:140] sub [LIT 1:136] => [_temp_:146]
34: 067 146 147 # IS_AN_ATOM: [_temp_:146] [_temp_:147]
37: 036 136 147 # QPRINT: [_temp_:147]
[bug.ex:6] (6)
40: 109 140 # GLOBAL_INIT_CHECK: [s:140]
42: 025 140 136 148 # RHS_SUBS: [s:140] sub [LIT 1:136] => [_temp_:148]
46: 040 148 149 # IS_AN_OBJECT: [_temp_:148] [_temp_:149]
49: 036 136 149 # QPRINT: [_temp_:149]
52: 034 # RETURNT:
End SubProgram [<TopLevel>:00134]
Note that none of [_temp_:142], [_temp_:144], [_temp_:146], [_temp_:148] are ever dereferenced.
Details
1. Comment by mattlewis
Jul 26, 2012
See: hg:euphoria/rev/3e2f8ff51d74
changeset: 5611:3e2f8ff51d74 branch: 4.0 user: Matt Lewis date: Wed Jul 25 20:39:58 2012 -0400 files: docs/release/4.0.5.txt source/emit.e tests/t_delete.e description:
- fix interpreter memory leak with native type check functions and temps
- fixes ticket 775
2. Comment by mattlewis
Jul 26, 2012
See: hg:euphoria/rev/93cf5cca154b
changeset: 5612:93cf5cca154b parent: 5608:1be9fc689c77 parent: 5611:3e2f8ff51d74 user: Matt Lewis date: Wed Jul 25 21:29:02 2012 -0400 files: docs/installing.txt docs/release/4.0.5.txt source/emit.e source/fwdref.e tests/t_delete.e description:
- merge 4.0 branch into trunk
- documentation fixes
- ticket 775