[fpc-devel] Unicodestring branch, please test and help fixing
Martin Schreiber
fpmse at bluewin.ch
Thu Sep 11 21:43:21 CEST 2008
On Saturday 30 August 2008 13.37:42 Florian Klaempfl wrote:
> I've continued to work on support of an unicodestring type in fpc. It's
> currently in an svn branch at:
> http://svn.freepascal.org/svn/fpc/branches/unicodestring
> and will be merged later to trunk. The unicodestring type is a ref.
> counted utf-16 string. On non-windows, widestring is mapped to this
> type. If you're interested in unicode support please test, give feedback
> here and submit fixes.
>
I have a crash in MSEide startup in a procedure finalization section:
"
#0 77892373 :0 ??()
#1 0082CDF4 :0 U_SYSTEM_ENTRYINFORMATION()
#2 03B7FB2C :0 ??()
#3 03B7FAAC :0 ??()
#4 03C22C1C :0 ??()
#5 0082D9F4 :0 U_SYSTEM_FREELISTS()
#6 03B7F874 :0 ??()
#7 0040F5EB heap.inc:1127 SYSFREEMEM(P=0x0)
#8 778922F8 heap.inc:0 ??()
#9 0082E500 heap.inc:0 U_HEAPTRC_OWNFILE()
#10 00410482 systhrd.inc:300 SYSENTERCRITICALSECTION(CS=void)
#11 0040FE94 thread.inc:190 ENTERCRITICALSECTION(CS={DEBUGINFO = 0x0,
LOCKCOUNT = 1, RECURSIONCOUNT = 0, OWNINGTHREAD = 0, LOCKSEMAPHORE = 812,
SPINCOUNT = 0})
#12 00414571 heaptrc.pp:666 TRACEFREEMEMSIZE(P=0x6d11b8, SIZE=0)
#13 004146BB heaptrc.pp:722 TRACEFREEMEM(P=0x6d11b8)
#14 0040E404 heap.inc:275 FREEMEM(P=0x6d11b8)
#15 004093FA ustrings.inc:179 DISPOSEUNICODESTRING(S=0x6d11b8)
#16 0040947D ustrings.inc:206 fpc_unicodestr_decr_ref(S=0x6d11b8)
#17 004A9B1C msesysintf.pas:306 WINFILEPATH(DIRNAME=0x0, FILENAME=0x6d11b8,
result=0x3c22fa8)
#18 004AB63F msesysintf.pas:1436 SYS_OPENDIRSTREAM(STREAM={INFOLEVEL =
FIL_NAME, DIRNAME = 0x3c23148, MASK = 0x3b7faa0, INCLUDE = [FA_ALL], EXCLUDE
= [], PLATFORMDATA = {0, 208983208, 1, 4294967295, 0, 0, 0, 0}})
#19 004B5BB2 msefileutils.pas:640 SEARCHFILE(AFILENAME=0xc7a07b0,
ADIRNAME=0x3c22e08, result=0x0)
#20 004B5DED msefileutils.pas:671 SEARCHFILE(AFILENAME=0x6bf2f8,
ADIRNAMES=0x3c22ed8, highADIRNAMES=0, result=0x0)
#21 004B5F9C msefileutils.pas:698 FINDFILE(FILENAME=0x6bf2f8,
DIRNAMES=0x3c22ed8, PATH=0x0, highDIRNAMES=0)
#22 004C03E1 msestatfile.pas:244 TSTATFILE__READSTAT(STREAM=0x0,
this=0x3c6b918)
#23 00453CF8 main.pas:1514 TMAINFO__MAINONLOADED(SENDER=0x3c03d40,
this=0x3c03d40)
#24 0050A717 mseforms.pas:854
TCUSTOMMSEFORM__DOEVENTLOOPSTART(this=0x3c03d40)
#25 0050A763 mseforms.pas:863 TCUSTOMMSEFORM__RECEIVEEVENT(EVENT=0xc7016f8,
this=0x3c03d40)
#26 0048CA3A mseevent.pas:213 TOBJECTEVENT__DELIVER(this=0xc7016f8)
#27 0042E7D0 msegui.pas:12666
TINTERNALAPPLICATION__EVENTLOOP(AMODALWINDOW=0x0, ONCE=false, this=0x3bd9460)
#28 0042F52C msegui.pas:13063 TINTERNALAPPLICATION__DOEVENTLOOP(ONCE=false,
this=0x3bd9460)
#29 0048B3F8 mseapplication.pas:1132 TCUSTOMAPPLICATION__RUN(this=0x3bd9460)
#30 004025D1 mseide.pas:59 main()
"
I could not find a simple program to demonstrate the failure. Something
strange is that the following procedure calls fpc_WideStr_Decr_Ref in
finalization section:
"
const
quotechar = unicodechar('"');
procedure requote(var path: unicodestring; const newvalue: unicodestring);
begin
if punicodechar(path)^ = quotechar then begin
path:= quotechar + newvalue;
end
else begin
path:= newvalue;
end;
end;
"
I saw that you merged unicodestring to trunk. Should I test with trunk instead
of unicodestring branch?
Martin
More information about the fpc-devel
mailing list