You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2014/05/22 18:26:58 UTC

svn commit: r1596912 - in /qpid/proton/trunk/proton-c/src: ./ codec/ dispatcher/ engine/ message/ messenger/ object/ posix/ sasl/ ssl/

Author: astitcher
Date: Thu May 22 16:26:57 2014
New Revision: 1596912

URL: http://svn.apache.org/r1596912
Log:
PROTON-585: Rearrange structures (where possible) to remove padding holes

Modified:
    qpid/proton/trunk/proton-c/src/codec/data.h
    qpid/proton/trunk/proton-c/src/dispatcher/dispatcher.h
    qpid/proton/trunk/proton-c/src/engine/engine-internal.h
    qpid/proton/trunk/proton-c/src/engine/event.c
    qpid/proton/trunk/proton-c/src/error.c
    qpid/proton/trunk/proton-c/src/message/message.c
    qpid/proton/trunk/proton-c/src/messenger/messenger.c
    qpid/proton/trunk/proton-c/src/messenger/store.c
    qpid/proton/trunk/proton-c/src/object/object.c
    qpid/proton/trunk/proton-c/src/parser.c
    qpid/proton/trunk/proton-c/src/posix/driver.c
    qpid/proton/trunk/proton-c/src/sasl/sasl.c
    qpid/proton/trunk/proton-c/src/ssl/openssl.c

Modified: qpid/proton/trunk/proton-c/src/codec/data.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/codec/data.h?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/codec/data.h (original)
+++ qpid/proton/trunk/proton-c/src/codec/data.h Thu May 22 16:26:57 2014
@@ -30,35 +30,35 @@
 typedef uint16_t pni_nid_t;
 
 typedef struct {
+  char *start;
+  size_t data_offset;
+  size_t data_size;
+  pn_atom_t atom;
+  pn_type_t type;
   pni_nid_t next;
   pni_nid_t prev;
   pni_nid_t down;
   pni_nid_t parent;
   pni_nid_t children;
-  pn_atom_t atom;
   // for arrays
   bool described;
-  pn_type_t type;
   bool data;
-  size_t data_offset;
-  size_t data_size;
-  char *start;
   bool small;
 } pni_node_t;
 
 struct pn_data_t {
-  pni_nid_t capacity;
-  pni_nid_t size;
   pni_node_t *nodes;
   pn_buffer_t *buf;
-  pni_nid_t parent;
-  pni_nid_t current;
-  pni_nid_t base_parent;
-  pni_nid_t base_current;
   pn_decoder_t *decoder;
   pn_encoder_t *encoder;
   pn_error_t *error;
   pn_string_t *str;
+  pni_nid_t capacity;
+  pni_nid_t size;
+  pni_nid_t parent;
+  pni_nid_t current;
+  pni_nid_t base_parent;
+  pni_nid_t base_current;
 };
 
 pni_node_t *pn_data_node(pn_data_t *data, pni_nid_t nd);

Modified: qpid/proton/trunk/proton-c/src/dispatcher/dispatcher.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/dispatcher/dispatcher.h?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/dispatcher/dispatcher.h (original)
+++ qpid/proton/trunk/proton-c/src/dispatcher/dispatcher.h Thu May 22 16:26:57 2014
@@ -38,12 +38,8 @@ typedef int (pn_action_t)(pn_dispatcher_
 
 struct pn_dispatcher_t {
   pn_action_t *actions[256];
-  uint8_t frame_type;
-  pn_trace_t trace;
   pn_buffer_t *input;
   size_t fragment;
-  uint16_t channel;
-  uint8_t code;
   pn_data_t *args;
   const char *payload;
   size_t size;
@@ -56,11 +52,15 @@ struct pn_dispatcher_t {
   size_t available; /* number of raw bytes pending output */
   char *output;
   pn_transport_t *transport;
-  bool halt;
-  bool batch;
   uint64_t output_frames_ct;
   uint64_t input_frames_ct;
   pn_string_t *scratch;
+  pn_trace_t trace;
+  uint16_t channel;
+  uint8_t frame_type;
+  uint8_t code;
+  bool halt;
+  bool batch;
 };
 
 pn_dispatcher_t *pn_dispatcher(uint8_t frame_type, pn_transport_t *transport);

Modified: qpid/proton/trunk/proton-c/src/engine/engine-internal.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/engine/engine-internal.h?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/engine/engine-internal.h (original)
+++ qpid/proton/trunk/proton-c/src/engine/engine-internal.h Thu May 22 16:26:57 2014
@@ -111,21 +111,14 @@ typedef struct pn_io_layer_t {
 } pn_io_layer_t;
 
 struct pn_transport_t {
-  bool freed;
   pn_tracer_t tracer;
   size_t header_count;
   pn_sasl_t *sasl;
   pn_ssl_t *ssl;
   pn_connection_t *connection;  // reference counted
   pn_dispatcher_t *disp;
-  bool open_sent;
-  bool open_rcvd;
-  bool close_sent;
-  bool close_rcvd;
   char *remote_container;
   char *remote_hostname;
-  uint16_t channel_max;
-  uint16_t remote_channel_max;
   pn_data_t *remote_offered_capabilities;
   pn_data_t *remote_desired_capabilities;
   pn_data_t *remote_properties;
@@ -144,11 +137,11 @@ struct pn_transport_t {
 
   /* dead remote detection */
   pn_millis_t local_idle_timeout;
+  pn_millis_t remote_idle_timeout;
   pn_timestamp_t dead_remote_deadline;
   uint64_t last_bytes_input;
 
   /* keepalive */
-  pn_millis_t remote_idle_timeout;
   pn_timestamp_t keepalive_deadline;
   uint64_t last_bytes_output;
 
@@ -166,14 +159,22 @@ struct pn_transport_t {
   size_t output_pending;
   char *output_buf;
 
+  void *context;
+
   /* input from peer */
   size_t input_size;
   size_t input_pending;
   char *input_buf;
+
+  uint16_t channel_max;
+  uint16_t remote_channel_max;
+  bool freed;
+  bool open_sent;
+  bool open_rcvd;
+  bool close_sent;
+  bool close_rcvd;
   bool tail_closed;      // input stream closed by driver
   bool head_closed;
-
-  void *context;
 };
 
 struct pn_connection_t {
@@ -211,80 +212,80 @@ struct pn_session_t {
 };
 
 struct pn_terminus_t {
-  pn_terminus_type_t type;
   pn_string_t *address;
-  pn_durability_t durability;
-  pn_expiry_policy_t expiry_policy;
-  pn_seconds_t timeout;
-  bool dynamic;
-  pn_distribution_mode_t distribution_mode;
   pn_data_t *properties;
   pn_data_t *capabilities;
   pn_data_t *outcomes;
   pn_data_t *filter;
+  pn_durability_t durability;
+  pn_expiry_policy_t expiry_policy;
+  pn_seconds_t timeout;
+  pn_terminus_type_t type;
+  pn_distribution_mode_t distribution_mode;
+  bool dynamic;
 };
 
 struct pn_link_t {
   pn_endpoint_t endpoint;
-  pn_string_t *name;
-  pn_session_t *session;  // reference counted
   pn_terminus_t source;
   pn_terminus_t target;
   pn_terminus_t remote_source;
   pn_terminus_t remote_target;
+  pn_link_state_t state;
+  pn_string_t *name;
+  pn_session_t *session;  // reference counted
   pn_delivery_t *unsettled_head;
   pn_delivery_t *unsettled_tail;
   pn_delivery_t *current;
   pn_delivery_t *settled_head;
   pn_delivery_t *settled_tail;
-  uint8_t snd_settle_mode;
-  uint8_t rcv_settle_mode;
-  uint8_t remote_snd_settle_mode;
-  uint8_t remote_rcv_settle_mode;
+  void *context;
   size_t unsettled_count;
   pn_sequence_t available;
   pn_sequence_t credit;
   pn_sequence_t queued;
+  int drained; // number of drained credits
+  uint8_t snd_settle_mode;
+  uint8_t rcv_settle_mode;
+  uint8_t remote_snd_settle_mode;
+  uint8_t remote_rcv_settle_mode;
   bool drain_flag_mode; // receiver only
   bool drain;
-  int drained; // number of drained credits
-  void *context;
-  pn_link_state_t state;
 };
 
 struct pn_disposition_t {
+  pn_condition_t condition;
   uint64_t type;
   pn_data_t *data;
   pn_data_t *annotations;
-  pn_condition_t condition;
-  uint32_t section_number;
   uint64_t section_offset;
+  uint32_t section_number;
   bool failed;
   bool undeliverable;
   bool settled;
 };
 
 struct pn_delivery_t {
-  pn_link_t *link;  // reference counted
-  pn_buffer_t *tag;
   pn_disposition_t local;
   pn_disposition_t remote;
-  bool updated;
-  bool settled; // tracks whether we're in the unsettled list or not
+  pn_link_t *link;  // reference counted
+  pn_buffer_t *tag;
   pn_delivery_t *unsettled_next;
   pn_delivery_t *unsettled_prev;
   pn_delivery_t *settled_next;
   pn_delivery_t *settled_prev;
   pn_delivery_t *work_next;
   pn_delivery_t *work_prev;
-  bool work;
   pn_delivery_t *tpwork_next;
   pn_delivery_t *tpwork_prev;
-  bool tpwork;
+  pn_delivery_state_t state;
   pn_buffer_t *bytes;
-  bool done;
   void *context;
-  pn_delivery_state_t state;
+  bool updated;
+  bool settled; // tracks whether we're in the unsettled list or not
+  bool work;
+  bool tpwork;
+  bool done;
 };
 
 #define PN_SET_LOCAL(OLD, NEW)                                          \

Modified: qpid/proton/trunk/proton-c/src/engine/event.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/engine/event.c?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/engine/event.c (original)
+++ qpid/proton/trunk/proton-c/src/engine/event.c Thu May 22 16:26:57 2014
@@ -9,13 +9,13 @@ struct pn_collector_t {
 };
 
 struct pn_event_t {
-  pn_event_type_t type;
   pn_connection_t *connection;
   pn_session_t *session;
   pn_link_t *link;
   pn_delivery_t *delivery;
   pn_transport_t *transport;
   pn_event_t *next;
+  pn_event_type_t type;
 };
 
 static void pn_collector_initialize(void *obj)

Modified: qpid/proton/trunk/proton-c/src/error.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/error.c?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/error.c (original)
+++ qpid/proton/trunk/proton-c/src/error.c Thu May 22 16:26:57 2014
@@ -27,9 +27,9 @@
 #include "platform.h"
 
 struct pn_error_t {
-  int code;
   char *text;
   pn_error_t *root;
+  int code;
 };
 
 pn_error_t *pn_error()

Modified: qpid/proton/trunk/proton-c/src/message/message.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/message/message.c?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/message/message.c (original)
+++ qpid/proton/trunk/proton-c/src/message/message.c Thu May 22 16:26:57 2014
@@ -49,11 +49,8 @@ ssize_t pn_message_data(char *dst, size_
 // message
 
 struct pn_message_t {
-  bool durable;
-  uint8_t priority;
-  pn_millis_t ttl;
-  bool first_acquirer;
-  uint32_t delivery_count;
+  pn_timestamp_t expiry_time;
+  pn_timestamp_t creation_time;
   pn_data_t *id;
   pn_string_t *user_id;
   pn_string_t *address;
@@ -62,22 +59,28 @@ struct pn_message_t {
   pn_data_t *correlation_id;
   pn_string_t *content_type;
   pn_string_t *content_encoding;
-  pn_timestamp_t expiry_time;
-  pn_timestamp_t creation_time;
   pn_string_t *group_id;
-  pn_sequence_t group_sequence;
   pn_string_t *reply_to_group_id;
 
-  bool inferred;
   pn_data_t *data;
   pn_data_t *instructions;
   pn_data_t *annotations;
   pn_data_t *properties;
   pn_data_t *body;
 
-  pn_format_t format;
   pn_parser_t *parser;
   pn_error_t *error;
+
+  pn_format_t format;
+  pn_sequence_t group_sequence;
+  pn_millis_t ttl;
+  uint32_t delivery_count;
+
+  uint8_t priority;
+
+  bool durable;
+  bool first_acquirer;
+  bool inferred;
 };
 
 void pn_message_finalize(void *obj)

Modified: qpid/proton/trunk/proton-c/src/messenger/messenger.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/messenger/messenger.c?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/messenger/messenger.c (original)
+++ qpid/proton/trunk/proton-c/src/messenger/messenger.c Thu May 22 16:26:57 2014
@@ -60,30 +60,20 @@ typedef  enum {
 } pn_link_credit_mode_t;
 
 struct pn_messenger_t {
+  pn_address_t address;
   char *name;
   char *certificate;
   char *private_key;
   char *password;
   char *trusted_certificates;
-  int timeout;
-  bool blocking;
-  bool passive;
   pn_io_t *io;
   pn_list_t *pending; // pending selectables
   pn_selectable_t *interruptor;
-  bool interrupted;
   pn_socket_t ctrl[2];
   pn_list_t *listeners;
   pn_list_t *connections;
   pn_selector_t *selector;
   pn_collector_t *collector;
-  int send_threshold;
-  pn_link_credit_mode_t credit_mode;
-  int credit_batch;  // when LINK_CREDIT_AUTO
-  int credit;        // available
-  int distributed;   // credit
-  int receivers;     // # receiver links
-  int draining;      // # links in drain state
   pn_list_t *credited;
   pn_list_t *blocked;
   pn_timestamp_t next_drain;
@@ -95,14 +85,24 @@ struct pn_messenger_t {
   pn_error_t *error;
   pn_transform_t *routes;
   pn_transform_t *rewrites;
-  pn_address_t address;
   pn_tracker_t outgoing_tracker;
   pn_tracker_t incoming_tracker;
   pn_string_t *original;
   pn_string_t *rewritten;
   pn_string_t *domain;
-  bool worked;
+  int timeout;
+  int send_threshold;
+  pn_link_credit_mode_t credit_mode;
+  int credit_batch;  // when LINK_CREDIT_AUTO
+  int credit;        // available
+  int distributed;   // credit
+  int receivers;     // # receiver links
+  int draining;      // # links in drain state
   int connection_error;
+  bool blocking;
+  bool passive;
+  bool interrupted;
+  bool worked;
 };
 
 #define CTX_HEAD                                \

Modified: qpid/proton/trunk/proton-c/src/messenger/store.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/messenger/store.c?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/messenger/store.c (original)
+++ qpid/proton/trunk/proton-c/src/messenger/store.c Thu May 22 16:26:57 2014
@@ -34,14 +34,14 @@
 typedef struct pni_stream_t pni_stream_t;
 
 struct pni_store_t {
-  size_t size;
   pni_stream_t *streams;
   pni_entry_t *store_head;
   pni_entry_t *store_tail;
+  pn_hash_t *tracked;
+  size_t size;
   int window;
   pn_sequence_t lwm;
   pn_sequence_t hwm;
-  pn_hash_t *tracked;
 };
 
 struct pni_stream_t {
@@ -53,17 +53,17 @@ struct pni_stream_t {
 };
 
 struct pni_entry_t {
-  pn_sequence_t id;
   pni_stream_t *stream;
-  bool free;
   pni_entry_t *stream_next;
   pni_entry_t *stream_prev;
   pni_entry_t *store_next;
   pni_entry_t *store_prev;
-  pn_status_t status;
   pn_buffer_t *bytes;
   pn_delivery_t *delivery;
   void *context;
+  pn_status_t status;
+  pn_sequence_t id;
+  bool free;
 };
 
 void pni_entry_finalize(void *object)

Modified: qpid/proton/trunk/proton-c/src/object/object.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/object/object.c?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/object/object.c (original)
+++ qpid/proton/trunk/proton-c/src/object/object.c Thu May 22 16:26:57 2014
@@ -380,9 +380,9 @@ struct pn_map_t {
   size_t capacity;
   size_t addressable;
   size_t size;
-  float load_factor;
   uintptr_t (*hashcode)(void *key);
   bool (*equals)(void *a, void *b);
+  float load_factor;
   bool count_keys;
   bool count_values;
 };

Modified: qpid/proton/trunk/proton-c/src/parser.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/parser.c?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/parser.c (original)
+++ qpid/proton/trunk/proton-c/src/parser.c Thu May 22 16:26:57 2014
@@ -29,10 +29,10 @@
 
 struct pn_parser_t {
   pn_scanner_t *scanner;
-  int error_code;
   char *atoms;
   size_t size;
   size_t capacity;
+  int error_code;
 };
 
 pn_parser_t *pn_parser()

Modified: qpid/proton/trunk/proton-c/src/posix/driver.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/posix/driver.c?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/posix/driver.c (original)
+++ qpid/proton/trunk/proton-c/src/posix/driver.c Thu May 22 16:26:57 2014
@@ -64,19 +64,19 @@ struct pn_driver_t {
   struct pollfd *fds;
   size_t nfds;
   int ctrl[2]; //pipe for updating selectable status
-  pn_trace_t trace;
   pn_timestamp_t wakeup;
+  pn_trace_t trace;
 };
 
 struct pn_listener_t {
   pn_driver_t *driver;
   pn_listener_t *listener_next;
   pn_listener_t *listener_prev;
+  void *context;
   int idx;
-  bool pending;
   int fd;
+  bool pending;
   bool closed;
-  void *context;
 };
 
 #define PN_NAME_MAX (256)
@@ -86,22 +86,22 @@ struct pn_connector_t {
   pn_connector_t *connector_next;
   pn_connector_t *connector_prev;
   char name[PN_NAME_MAX];
+  pn_timestamp_t wakeup;
+  pn_connection_t *connection;
+  pn_transport_t *transport;
+  pn_sasl_t *sasl;
+  pn_listener_t *listener;
+  void *context;
   int idx;
-  bool pending_tick;
-  bool pending_read;
-  bool pending_write;
   int fd;
   int status;
   pn_trace_t trace;
+  bool pending_tick;
+  bool pending_read;
+  bool pending_write;
   bool closed;
-  pn_timestamp_t wakeup;
-  pn_connection_t *connection;
-  pn_transport_t *transport;
-  pn_sasl_t *sasl;
   bool input_done;
   bool output_done;
-  pn_listener_t *listener;
-  void *context;
 };
 
 /* Impls */

Modified: qpid/proton/trunk/proton-c/src/sasl/sasl.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/sasl/sasl.c?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/sasl/sasl.c (original)
+++ qpid/proton/trunk/proton-c/src/sasl/sasl.c Thu May 22 16:26:57 2014
@@ -35,15 +35,15 @@
 struct pn_sasl_t {
   pn_transport_t *transport;
   pn_io_layer_t *io_layer;
-  size_t header_count;
   pn_dispatcher_t *disp;
-  bool client;
-  bool configured;
   char *mechanisms;
   char *remote_mechanisms;
   pn_buffer_t *send_data;
   pn_buffer_t *recv_data;
+  size_t header_count;
   pn_sasl_outcome_t outcome;
+  bool client;
+  bool configured;
   bool sent_init;
   bool rcvd_init;
   bool sent_done;

Modified: qpid/proton/trunk/proton-c/src/ssl/openssl.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/ssl/openssl.c?rev=1596912&r1=1596911&r2=1596912&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/ssl/openssl.c (original)
+++ qpid/proton/trunk/proton-c/src/ssl/openssl.c Thu May 22 16:26:57 2014
@@ -49,23 +49,25 @@ typedef enum { UNKNOWN_CONNECTION, SSL_C
 typedef struct pn_ssl_session_t pn_ssl_session_t;
 
 struct pn_ssl_domain_t {
-  int   ref_count;
 
   SSL_CTX       *ctx;
-  pn_ssl_mode_t mode;
 
-  bool has_ca_db;       // true when CA database configured
-  bool has_certificate; // true when certificate configured
   char *keyfile_pw;
 
   // settings used for all connections
   char *trusted_CAs;
-  pn_ssl_verify_mode_t verify_mode;
-  bool allow_unsecured;
 
   // session cache
   pn_ssl_session_t *ssn_cache_head;
   pn_ssl_session_t *ssn_cache_tail;
+
+  int   ref_count;
+  pn_ssl_mode_t mode;
+  pn_ssl_verify_mode_t verify_mode;
+
+  bool has_ca_db;       // true when CA database configured
+  bool has_certificate; // true when certificate configured
+  bool allow_unsecured;
 };
 
 
@@ -81,24 +83,25 @@ struct pn_ssl_t {
   BIO *bio_ssl;         // i/o from/to SSL socket layer
   BIO *bio_ssl_io;      // SSL "half" of network-facing BIO
   BIO *bio_net_io;      // socket-side "half" of network-facing BIO
-  bool ssl_shutdown;    // BIO_ssl_shutdown() called on socket.
-  bool ssl_closed;      // shutdown complete, or SSL error
-  ssize_t app_input_closed;   // error code returned by upper layer process input
-  ssize_t app_output_closed;  // error code returned by upper layer process output
-
-  bool read_blocked;    // SSL blocked until more network data is read
-  bool write_blocked;   // SSL blocked until data is written to network
-
   // buffers for holding I/O from "applications" above SSL
 #define APP_BUF_SIZE    (4*1024)
   char *outbuf;
+  char *inbuf;
+
+  ssize_t app_input_closed;   // error code returned by upper layer process input
+  ssize_t app_output_closed;  // error code returned by upper layer process output
+
   size_t out_size;
   size_t out_count;
-  char *inbuf;
   size_t in_size;
   size_t in_count;
 
   pn_trace_t trace;
+
+  bool ssl_shutdown;    // BIO_ssl_shutdown() called on socket.
+  bool ssl_closed;      // shutdown complete, or SSL error
+  bool read_blocked;    // SSL blocked until more network data is read
+  bool write_blocked;   // SSL blocked until data is written to network
 };
 
 struct pn_ssl_session_t {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org