Search
Thursday, 15th of August 2019, 6:44:36 UTC
8:18:36
Shinmera
Back in Windows COM hell
18:11:04
Shinmera
I have font discovery almost working on windows now using the DirectWrite COM API
18:11:19
Shinmera
only problem is that on some fonts reading the file name hard crashes.
18:11:26
Shinmera
Sigh, how to figure out what's wrong now...
18:19:41
Shinmera
none of the COM calls cause an exception
18:19:52
Shinmera
or rather, none of the results are erroneous
18:21:04
Shinmera
And now once it flushed through correctly
18:22:13
Shinmera
The font it triggers the exception on is always different
18:24:31
Shinmera
I'm grasping at straws here, but anyone see anything obviously wrong with this? https://github.com/Shinmera/font-discovery/blob/master/windows.lisp#L58
18:24:32
Colleen
github.com/Shinmera/font-di... Website (HTML), Title: font-discovery/windows.lisp at master · Shinmera/font-discovery · GitHub
18:29:09
|3b|
what does the expansion of with-getter-values look like?
18:31:48
Shinmera
it's in the same file; allocates a pointer, calls the "value function", then rebinds the variable with the mem-refd pointer, finally adds an unwind-protect to call com-release on said pointer.
18:32:00
Shinmera
does so recursively for each binding.
18:32:20
Shinmera
I think the problem is in my wstring->string translation, the wstring might not be null-terminated.
18:33:24
|3b|
it kills lisp, no debugger?
18:34:31
Shinmera
debugger comes up with an exception code from which I can exit, but no useful debug info on where it is when the exception hits
18:34:55
Shinmera
I only get that it's on exit from get-font-path
18:35:11
Shinmera
Trying to disable pieces now to figure out what's what.
18:35:33
|3b|
tried recompiling with higher debug? (C-u C-c C-c or C-u C-c C-k in slime)
18:38:42
Shinmera
hmm, create-font-face seems to trigger the exception.
18:38:53
Shinmera
Yes, repo should be current.
18:40:55
|3b|
and just list-fonts is the test?
18:41:30
Shinmera
it works sometimes for me, other times crashes
18:41:37
Shinmera
most of the time it crashes.
18:42:07
Shinmera
I'm on Win7, though the API is ancient so it shouldn't matter much.
18:42:18
|3b|
running in a loop, hasn't crashed yet. 8.1 here
18:42:49
Shinmera
I was thinking it might be a rogue font, but the crash happens at random fonts
18:43:12
|3b|
though can't interrupt that loop, so not completely sure about that :/
18:43:55
Shinmera
if I abort from the exception and retry it just crashes completely silently and goes unresponsive.
18:44:30
Shinmera
the exception seems to be triggered by the create-font-face call, if I leave that in it crashes, if I comment it out it goes through.
Thursday, 15th of August 2019, 18:44:36 UTC