Jump to content

Stefan Glienke

  • Content Count

  • Joined

  • Last visited

  • Days Won


Stefan Glienke last won the day on January 29

Stefan Glienke had the most liked content!

Community Reputation

113 Excellent


Technical Information

  • Delphi-Version
    Delphi 10.1 Berlin

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I just noticed yet another time that selecting text from a post contains invisible characters - in this particular case I selected the URL from this post: by selecting from the starting h of http and moved the mouse a bit to the right and down so it selected the entire rest of the line. When I then clicked "go to" in my context menu (using Chrome) I got a 404 which confused me because the url is valid. I eventually found out that the selected text contained some UTF-8 BOM bytes at the end. Also when inspecting the elements it showed this: which according to a google search is a zero width no-break space - turning off JS makes them disappear. The weird spans are also shown with Firefox however selecting the text does not cause it to contain garbage. Edit: I found what is causing the spans with the ZWNBSP - its the "quote selection" popup that leaves them there. So the issue I am describing here only happens when you selected the text, deselected and then selected again to contain the hidden ZWNBSP character.
  2. Stefan Glienke

    Which version of Delphi was StrToUInt64 introduced in

    There is no such function in the RTL, its called UIntToStr and has two overloads for Cardinal and UInt64 - it's there at least since Delphi XE and works there as far as I can tell. I don't immediately remember a bug with that function (which does not mean anything) - but I know there was a bug with the opposite related to System.Val which was fixed in XE4 - see https://stackoverflow.com/q/6077258/587106
  3. It probably is lacking the `()` there which it sometimes needs when invoking a method that returns an invokable type.
  4. Stefan Glienke

    Running UnitTests for Mobile Devices

    It basically does what "Run" does.
  5. Stefan Glienke

    Running UnitTests for Mobile Devices

    There is the IDE plugin that listens on the TCP port(range) specified in its settings and the client that is compiled into the test projects sends its result to it. What exactly should not work about that on any platform that can do TCP/IP?
  6. Stefan Glienke

    Running UnitTests for Mobile Devices

    What are you talking about?
  7. Stefan Glienke

    Running UnitTests for Mobile Devices

    Run it under the debugger so see where it's stuck?
  8. Stefan Glienke

    Running UnitTests for Mobile Devices

    https://bitbucket.org/sglienke/testinsight/wiki/Home On mobile you need a bare UI application though iirc - just make a form with a button that calls RunRegisteredTests. Either hardcode the uri to your developer machine or deploy the TestInsightSettings.ini that gets written next to the binary.
  9. Stefan Glienke

    Running UnitTests for Mobile Devices

    That's exactly what TestInsight does...
  10. Stefan Glienke


    Seems to be written in 10.3 where TStringDynArray is declared as TArray<string> whereas before it was a dedicated array of string. My suggestion is to not use the dynamic array types from System.Types anywhere and wherever you work with any RTL functions that use them, hardcast in order to be compatible to <10.3.
  11. Stefan Glienke

    Version Control System

    GitKraken is not free for commercial use though. I like using SourceTree (after the 2.x disaster in 3.x it's usable again).
  12. speed, min/max memory footprint, fragmentation, single/multi thread, sharing memory across threads?
  13. There clearly is a race condition somewhere in the SeaMM.dll - either it works, or it raises AVs until it stackoverflows or it gets stuck inside a loop (keep clicking Start/Stop if it does not raise AV/SO) with these instructions: 00007FF9B59FB520 664103D0 add dx,r8w 00007FF9B59FB524 488BD9 mov rbx,rcx 00007FF9B59FB527 66895774 mov [rdi+$74],dx 00007FF9B59FB52B 488B01 mov rax,[rcx] 00007FF9B59FB52E 488BC8 mov rcx,rax 00007FF9B59FB531 4883C801 or rax,$01 00007FF9B59FB535 4883F801 cmp rax,$01 00007FF9B59FB539 75E5 jnz $00007ff9b59fb520 Anyway as you seem to be the author/modifier of that code you should be able to debug that yourself. As soon as I put a breakpoint I could not get the AV - which confirms my guess about the race condition.
  14. Try removing the inline from function TIocpCrossSocket._NewIoData: PPerIoData; - possible that it trips over something there - apart from that I don't see how this could be related to anonymous methods. The variable assigned to is a local variable of a regular method and there are no anonymous methods in procedure TIocpCrossSocket._NewAccept(AListen: ICrossListen); that could change the location of that variable to somewhere else than the stack. Possible that the TBB code is sensitive to some garbage value in a volatile register that it does not properly check for.
  15. From looking at the callstack I am pretty sure there is a defect it's in your code namely in TIocpCrossSocket._NewAccept or the code that calls this method in case of AListen being nil.