diff options
author | florian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2006-08-20 19:38:51 +0000 |
---|---|---|
committer | florian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2006-08-20 19:38:51 +0000 |
commit | 62edb2ac6b222533fe414ce4d25e4875bc56939e (patch) | |
tree | 6a3a628e4a694de02a12728626a9a679ded125fe /compiler/symdef.pas | |
parent | bd50590ad222d6fd2881d53f9f4978aa1d634d1f (diff) | |
download | fpc-62edb2ac6b222533fe414ce4d25e4875bc56939e.tar.gz |
* patch from C Western for #7232
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@4481 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/symdef.pas')
-rw-r--r-- | compiler/symdef.pas | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/compiler/symdef.pas b/compiler/symdef.pas index 5db372939e..d8cf2a9f75 100644 --- a/compiler/symdef.pas +++ b/compiler/symdef.pas @@ -4834,7 +4834,7 @@ implementation proctypesinfo : byte; propnameitem : tpropnamelistitem; - procedure writeproc(proc : tsymlist; shiftvalue : byte); + procedure writeproc(proc : tsymlist; shiftvalue : byte; unsetvalue: byte); var typvalue : byte; @@ -4844,7 +4844,7 @@ implementation begin if not(assigned(proc) and assigned(proc.firstsym)) then begin - current_asmdata.asmlists[al_rtti].concat(Tai_const.create(aitconst_ptr,0)); + current_asmdata.asmlists[al_rtti].concat(Tai_const.create(aitconst_ptr,unsetvalue)); typvalue:=3; end else if proc.firstsym^.sym.typ=fieldvarsym then @@ -4910,16 +4910,13 @@ implementation else proctypesinfo:=0; current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(tstoreddef(tpropertysym(sym).proptype.def).get_rtti_label(fullrtti))); - writeproc(tpropertysym(sym).readaccess,0); - writeproc(tpropertysym(sym).writeaccess,2); - { isn't it stored ? } + writeproc(tpropertysym(sym).readaccess,0,0); + writeproc(tpropertysym(sym).writeaccess,2,0); + { is it stored ? } if not(ppo_stored in tpropertysym(sym).propoptions) then - begin - current_asmdata.asmlists[al_rtti].concat(Tai_const.create_sym(nil)); - proctypesinfo:=proctypesinfo or (3 shl 4); - end + writeproc(nil,4,0) { no, so put a constant zero } else - writeproc(tpropertysym(sym).storedaccess,4); + writeproc(tpropertysym(sym).storedaccess,4,1); { maybe; if no procedure put a constant 1 (=true) } current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_32bit(tpropertysym(sym).index)); current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_32bit(tpropertysym(sym).default)); propnameitem:=searchpropnamelist(tpropertysym(sym).name); |