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

Reply via email to