Mary hinton created PROTON-98:
---------------------------------
Summary: Porting Issue -- Visual Studio compiler requires explicit
casts
Key: PROTON-98
URL: https://issues.apache.org/jira/browse/PROTON-98
Project: Qpid Proton
Issue Type: Improvement
Components: proton-c
Environment: Windows using Visual Studio 2010
Reporter: Mary hinton
I would like to get the code changed to add explicit casts where the Visual
Studio compiler requires it.
The GNU compiler isn’t so picky, but we need the explicit casts for Visual
Studio tools.
The problem is in many of the files.
C:\qpid\qpid\proton\proton-c\src\proton.c(278): struct client_context *ctx =
(client_context *) pn_connector_context(ctor); // explicit cast
C:\qpid\qpid\proton\proton-c\src\buffer.c(41): pn_buffer_t *buf =
(pn_buffer_t *) malloc(sizeof(pn_buffer_t)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\buffer.c(45): buf->bytes = capacity ? (char
*) malloc(capacity) : NULL; // explicit cast
C:\qpid\qpid\proton\proton-c\src\codec\codec.c(706): return (pn_type_t)
PN_ARG_ERR; //
explicit cast
C:\qpid\qpid\proton\proton-c\src\codec\codec.c(758): return (pn_type_t)
PN_ARG_ERR; //
explicit cast
C:\qpid\qpid\proton\proton-c\src\codec\codec.c(1210): atom->u.type =
(pn_type_t) va_arg(*ap, int); // explicit cast
C:\qpid\qpid\proton\proton-c\src\codec\codec.c(1311): char **sptr =
(char **) ptr; // explicit
cast
C:\qpid\qpid\proton\proton-c\src\codec\codec.c(1875): pn_data_t *data =
(pn_data_t *) malloc(sizeof(pn_data_t)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\codec\codec.c(1878): data->nodes = capacity
? (pn_node_t *) malloc(capacity * sizeof(pn_node_t)) : NULL; // explicit cast
C:\qpid\qpid\proton\proton-c\src\codec\codec.c(1931): data->nodes =
(pn_node_t *) realloc(data->nodes, data->capacity * sizeof(pn_node_t)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\codec\codec.c(2151): char **sptr
= (char**) ptr; // explicit
cast
C:\qpid\qpid\proton\proton-c\src\codec\codec.c(3114): return (pn_type_t)
-1; //
explicit cast
C:\qpid\qpid\proton\proton-c\src\codec\codec.c(3764): return (pn_type_t)
-1; //
explicit cast
C:\qpid\qpid\proton\proton-c\src\dispatcher\dispatcher.c(32):
pn_dispatcher_t *disp = (pn_dispatcher_t *) calloc(sizeof(pn_dispatcher_t), 1);
// explicit cast
C:\qpid\qpid\proton\proton-c\src\dispatcher\dispatcher.c(47): disp->output =
(char *) malloc(disp->capacity); // explicit cast
C:\qpid\qpid\proton\proton-c\src\dispatcher\dispatcher.c(248):
disp->output = (char *) realloc(disp->output, disp->capacity); // explicit cast
C:\qpid\qpid\proton\proton-c\src\driver.c(193): pn_listener_t *l =
(pn_listener_t *) malloc(sizeof(pn_listener_t)); // explicit
cast
C:\qpid\qpid\proton\proton-c\src\driver.c(410): pn_connector_t *c =
(pn_connector_t *) malloc(sizeof(pn_connector_t)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\driver.c(656): pn_driver_t *d =
(pn_driver_t *) malloc(sizeof(pn_driver_t)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\driver.c(748): d->fds = (pollfd *)
realloc(d->fds, d->capacity*sizeof(struct pollfd)); // explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(47): db->deliveries =
(pn_delivery_state_t *) malloc(sizeof(pn_delivery_state_t) * capacity); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(438): pn_connection_t *conn
= (pn_connection_t *)malloc(sizeof(pn_connection_t)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(730): pn_session_t *ssn =
(pn_session_t *) malloc(sizeof(pn_session_t)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(866): pn_transport_t
*transport = (pn_transport_t *) malloc(sizeof(pn_transport_t));
// explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(964): return terminus ?
terminus->type : (pn_terminus_type_t) 0;
// explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(982): return terminus ?
terminus->durability : (pn_durability_t) 0; //
explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(994): return terminus ?
terminus->expiry_policy : (pn_expiry_policy_t) 0; // explicit
cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1128): pn_link_t *snd =
(pn_link_t *) malloc(sizeof(pn_link_t)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1137): pn_link_t *rcv =
(pn_link_t *) malloc(sizeof(pn_link_t)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1179): delivery =
(pn_delivery_t *) malloc(sizeof(pn_delivery_t));
// explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1351): pn_delivery_state_t
*state = (pn_delivery_state_t *) delivery->transport_context; // explicit
cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1415): pn_transport_t
*transport = (pn_transport_t *) disp->context;
// explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1443): pn_transport_t
*transport = (pn_transport_t *) disp->context;
// explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1500): pn_transport_t
*transport = (pn_transport_t *) disp->context;
// explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1595): pn_transport_t
*transport = (pn_transport_t *) disp->context;
// explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1648): pn_transport_t
*transport = (pn_transport_t *) disp->context;
// explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1713): pn_transport_t
*transport = (pn_transport_t *) disp->context;
// explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1815): pn_transport_t
*transport = (pn_transport_t *) disp->context;
// explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1853): pn_transport_t
*transport = (pn_transport_t *) disp->context;
// explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(1976):
pn_delivery_state_t *state = (pn_delivery_state_t *)
delivery->transport_context; // explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(2126): pn_delivery_state_t
*state = (pn_delivery_state_t *) delivery->transport_context; //
explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(2154):
pn_delivery_state_t *state = (pn_delivery_state_t *)
delivery->transport_context; // explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(2182): pn_delivery_state_t
*state = (pn_delivery_state_t *) delivery->transport_context; //
explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(2592): return
(pn_disposition_t) delivery->local_state;
// explicit cast
C:\qpid\qpid\proton\proton-c\src\engine\engine.c(2597): return
(pn_disposition_t) delivery->remote_state;
// explicit cast
C:\qpid\qpid\proton\proton-c\src\error.c(37): pn_error_t *error =
(pn_error_t *) malloc(sizeof(pn_error_t)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\message\message.c(83): pn_message_t *msg =
(pn_message_t *) malloc(sizeof(pn_message_t)); // explicit
cast
C:\qpid\qpid\proton\proton-c\src\messenger.c(90): pn_messenger_t *m =
(pn_messenger_t *) malloc(sizeof(pn_messenger_t)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\messenger.c(309): char *scheme = (char
*)pn_listener_context(l); // explicit
cast
C:\qpid\qpid\proton\proton-c\src\parser.c(42): pn_parser_t *parser =
(pn_parser_t *) malloc(sizeof(pn_parser_t));
// explicit cast
C:\qpid\qpid\proton\proton-c\src\parser.c(54): parser->atoms = (char *)
realloc(parser->atoms, parser->capacity); // explicit
cast
C:\qpid\qpid\proton\proton-c\src\sasl\sasl.c(349): pn_sasl_t *sasl =
(pn_sasl_t *)disp->context;
// explicit cast
C:\qpid\qpid\proton\proton-c\src\scanner.c(83): pn_scanner_t *scanner =
(pn_scanner_t *) malloc(sizeof(pn_scanner_t)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\types.c(42): char *dup = (char *)
malloc(size);
// explicit cast
C:\qpid\qpid\proton\proton-c\src\util.c(171): char *dest = (char *)
malloc((strlen(src)+1)*sizeof(char)); //
explicit cast
C:\qpid\qpid\proton\proton-c\src\util.c(187): char *dest = (char *)
malloc(size + 1);
// explicit cast
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira