which is an irrelevant digression, since it already
reports errors on calls
Maybe I will get reports if I fail to finalize a compiled
sql statement before shutting down a database connection,
but the most likely circumstance for this to happen is
on program close, when I am unlikely to be able to see
the log.
Sqlite3 crash due to premature call to shutdown.
calls to layout very rarely have any obvious effect,
but sometimes under odd and idiosyncratic circumstances
they do.
Called shutdown after the destroy was executed, but destroy does
not immediately destroy the windows, thus does not immediately
finalize all compiled sql statements and close all database
connections. You have to wait for all the windows to be destroyed.
Again, a rare crash except under certain special circumstances.
add name so it does not flash so horribly
Massively violating dry - I need to extract the repeated
code into a struct that does the cleanup when it is
destroyed
from display_wallet.h and display_wallet.cpp
They are now all wrapped in the long promised
and long forgotten wrapper class.
Long, long ago, I intended to implement the Pimpl idiom,
but these days std::unique takes care of all that work for
you. You just wrap your low level pimple class in a high
level wrapper whose base class is an std_unique_ptr to
to an instance of your low level class.
but the overhead and screen flash
of destroying and recreating every
little window is annoying.
I should use something like:
SELECT COUNT(*) FROM UserZookoIDs
WHERE LOWER("name")<LOWER(?1) AND "name"<?1);
and insert a new item at that position
the sqlite view capability VIEW UserZookoIDs
Made add_name responsive, but add_name still
does not use the VIEW triggers.
Got distracted by sizing issues. There is some issues
with resizing architecture - I know they put an ad hoc
workaround in on dialogs, need to read up on what they
did and why.
for the case where we have many windows and
you want to change the menu on change of focus
Which is a classic example of writing code before
it is needed.
fixed it by looking for funny things that deviated from
the sameples, and doing various recommended safe things,
and found a few sql errors, and one by one the crashes
went away.
The new wxWidgets just seems less tolerant of little careless
stuff that is not right.
looks like wxWidgets bugs
going back to sample code
either sample code breaks, and I make a bug report
to wxWidgets, or I converge the sample code to my
code, and see when it breaks
But did not apply the concept to the parameter pack,
event though I applied no end of cleverness to generate
a variant concept, because
visual studio gives meaningless error messages when applying
a variant concept to a parameter pack.
This will probably improve in later or different compilers,
but right now, this feature does not work
sanity test of pubkey mysteriously fails in display_wallet, yet identical test with same values succeeds in unit_test
need to create a view once sanity test passes.
then need to refresh display on edit/add name
need to make a second try at integrating release v3.2.2.1
Restored the wallet manifest.
Discovered that local wxString variables are apt to get wiped during
a throw. Dangerous to pass a wXstring.utf8() to an exception
Used it in one place. Better than printf
derived functionality.
But they never bothered to think through supporting user types,
and that is a complete mess that is grossly inconsistent or simply
not working from one compiler to the next.
Remade hashing according to the dry principle,
eliminating much code repetition.
Introduced c++20 "concepts" to radically reduce
verbose and incomprehensible template metacode.
modified: src/db_accessors.h
modified: src/ristretto255.h
modified: src/testbed.cpp
Because one has to separately specify build characteristics in
many different places it is quite difficult to make sure the right
things are linking the right things.
I added the two files msvc/winConfigDebug.bat msvc/winConfigRelease.bat
To build only the libaries that should be linked, so we will get an
error message if a release build links to a debug build.
Turned off the deprecated compare warning with explanation
Made a small start on getting names in correct order in the display_wallet
Unit test and create new wallet is still broken if wallet file does
not already exist
Fixed it while dead drunk
could not walk in a straight line
had difficulty typing
coded rather slowly, but still wrote
smart code.
Realized that the error handling
has to have exception structures in
scope, but not the constructors in
scope
You can forward the constructors,
but if you forward the structs,
exceptions will crash. Your exception
constructor inputs can use structs that
are out of scope at the exception handler