From 0f6e68ff04886875613506f6d6fb3fd88ed1ec25 Mon Sep 17 00:00:00 2001 From: herbert Date: Fri, 25 Feb 2005 21:48:59 +1100 Subject: Size optimisations with state/s in main(). --- ChangeLog | 1 + src/main.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2fc7ea4..f26353d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,7 @@ * Changed boolean rootshell into shlvl counter. * Catch set -e exits within built-in commands. + * Size optimisations with state/s in main(). 2005-01-31 Gerrit Pape diff --git a/src/main.c b/src/main.c index 4902cfa..9b5a409 100644 --- a/src/main.c +++ b/src/main.c @@ -122,11 +122,13 @@ main(int argc, char **argv) monitor(4, etext, profile_buf, sizeof profile_buf, 50); #endif state = 0; - if (setjmp(jmploc.loc)) { + if (unlikely(setjmp(jmploc.loc))) { int status; int e; + int s; reset(); + s = state; e = exception; switch (exception) { @@ -140,7 +142,7 @@ main(int argc, char **argv) case EXEXIT: case EXEVAL: - state = 0; + s = 0; /* fall through */ default: status = exitstatus; @@ -148,7 +150,7 @@ main(int argc, char **argv) } exitstatus = status; - if (state == 0 || iflag == 0 || shlvl) + if (s == 0 || iflag == 0 || shlvl) exitshell(); if (e == EXINT @@ -163,11 +165,11 @@ main(int argc, char **argv) } popstackmark(&smark); FORCEINTON; /* enable interrupts */ - if (state == 1) + if (s == 1) goto state1; - else if (state == 2) + else if (s == 2) goto state2; - else if (state == 3) + else if (s == 3) goto state3; else goto state4; -- cgit 1.4.1 ='id' value='0c964f63c5e9362d856778b0abf81fdaff004d57'/>
Commit message (Collapse)Author
2019-10-28Move entire login flow to state and reorganize itJune McEnroe
2019-10-27Wait for SASL success before sending CAP ENDJune McEnroe
Also refuse to continue logging in if SASL authentication fails. I should really just move all of log in and authentication from server.c to state.c...
2019-10-27Only increment consumer after successful sendJune McEnroe
2019-10-27Set SO_REUSEADDR on bindsJune McEnroe
2019-10-27Output ring info on SIGINFOJune McEnroe
2019-10-27Improve client/server error messagesJune McEnroe
2019-10-27Add reload cmd to rc scriptJune McEnroe
Using daemon(8) makes this way more awkward than it should be.
2019-10-27Reload certificate on SIGUSR1June McEnroe
2019-10-27Drop clients on zero-length readsJune McEnroe
2019-10-27Explicitly tls_handshake new clientsJune McEnroe
This prevents a client connecting, sending nothing, and getting blocked in tls_read immediately.
2019-10-26Document rationaleJune McEnroe
2019-10-26Handle nick collisionJune McEnroe
2019-10-26Wait for AUTHENTICATE + from serverJune McEnroe
2019-10-26Respond to PING with same parameterJune McEnroe
2019-10-26Add undocumented flag to disable verificationJune McEnroe
2019-10-26Do not require RPL_ISUPPORT for stateReadyJune McEnroe
2019-10-26Implement graceful shutdownJune McEnroe
2019-10-26Require PASS before USERJune McEnroe
Prevent creating a ring consumer without authentication.
2019-10-26Track channel topicsJune McEnroe
2019-10-26Set AWAY when no clients are connectedJune McEnroe
2019-10-26Add flags to request TOPIC and NAMES on client connectJune McEnroe
2019-10-26OopsJune McEnroe
2019-10-26Disconnect client on unknown commandJune McEnroe
During registration, no other commands should be sent. Afterwards, only intercepted commands will get parsed.
2019-10-26Allow reading sensitive information from filesJune McEnroe
2019-10-26Add rc scriptJune McEnroe
2019-10-25Add install and uninstall targetsJune McEnroe
2019-10-25Expand documentationJune McEnroe
2019-10-25Add AGPLv3 notice on client registrationJune McEnroe
OwO
2019-10-25Rename project pounceJune McEnroe