Thursday, June 16, 2011
Tuesday, June 14, 2011
Self-documenting code
trunk/Source/WebKit2/Platform/CoreIPC/Connection.h
enum MessageSendFlags {
// Whether this message should be dispatched when waiting for a sync reply.
// This is the default for synchronous messages.
DispatchMessageEvenWhenWaitingForSyncReply = 1 << 0,
};
[..]
virtual Vector windowsToReceiveSentMessagesWhileWaitingForSyncReply() = 0;
[..]
void setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage(bool);
void setShouldExitOnSyncMessageSendFailure(bool shouldExitOnSyncMessageSendFailure);
[..]
bool m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage;
bool m_shouldExitOnSyncMessageSendFailure;
DidCloseOnConnectionWorkQueueCallback m_didCloseOnConnectionWorkQueueCallback;
and so on :-)
enum MessageSendFlags {
// Whether this message should be dispatched when waiting for a sync reply.
// This is the default for synchronous messages.
DispatchMessageEvenWhenWaitingForSyncReply = 1 << 0,
};
[..]
virtual Vector
[..]
void setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage(bool);
void setShouldExitOnSyncMessageSendFailure(bool shouldExitOnSyncMessageSendFailure);
[..]
bool m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage;
bool m_shouldExitOnSyncMessageSendFailure;
DidCloseOnConnectionWorkQueueCallback m_didCloseOnConnectionWorkQueueCallback;
and so on :-)
Thanks to Anatoly Vorobey for pointing.
Tuesday, June 7, 2011
GNU C Family Extensions
Some time ago I met confusing C ternary operator usage
return timeout ?: 1;
It turned out to be a GNU "Conditionals with Omitted Operands"
C extension. The list of "Extensions to the C Language Family" can be found here.
This page is worth reading. For example, gettingthe address of a label defined in the current function (or a containing
function) with the unary operator `&&'. The value has typevoid *
. This value
is a constant and can be used wherever a constant of that type is valid.
For example:
void *ptr; /* ... */ ptr = &&foo;
To use these values, you need to be able to jump to one. This is done with
the computed goto statement,goto *
exp;
.
For example,goto *ptr;
Subscribe to:
Posts (Atom)