commit: r631 - trunk/libspread

[email protected] Mon, 06 Jan 2014 14:47:16 -0500
Newsgroups gmane.network.spread.cvs
Message-ID <[email protected]>
Author: jschultz
Date: 2014-01-06 14:47:15 -0500 (Mon, 06 Jan 2014)
New Revision: 631

Modified:
   trunk/libspread/fl.c
   trunk/libspread/scatp.c
   trunk/libspread/sp.c
Log:
Eliminate redundant comparisons now that scatter's fields are unsigned.


Modified: trunk/libspread/fl.c
===================================================================
--- trunk/libspread/fl.c	2014-01-06 19:19:50 UTC (rev 630)
+++ trunk/libspread/fl.c	2014-01-06 19:47:15 UTC (rev 631)
@@ -1139,7 +1139,7 @@
     } else if (IS_ILLEGAL_SEND_MTYPE(mess_type)) {                /* used a reserved mess type */
       DEBUG(std_stkfprintf(stderr, 0, "Illegal use of reserved message type!\n"));
       ret = ILLEGAL_MESSAGE_TYPE;
-    } else if (scat->num_elements < 0 || scat->num_elements > FL_MAX_SCATTER_ELEMENTS) {
+    } else if (scat->num_elements > FL_MAX_SCATTER_ELEMENTS) {
       DEBUG(std_stkfprintf(stderr, 0, "Illegal scatter num_elements %d\n", scat->num_elements));
       ret = ILLEGAL_MESSAGE;
     } else if ((grp_not_priv = !is_private_group(grp)) &&   /* I allow sends to private groups */

Modified: trunk/libspread/scatp.c
===================================================================
--- trunk/libspread/scatp.c	2014-01-06 19:19:50 UTC (rev 630)
+++ trunk/libspread/scatp.c	2014-01-06 19:47:15 UTC (rev 631)
@@ -32,8 +32,10 @@
  *
  */
 
+/* TODO: some of this code needs to be reviewed in light of scatter's
+   now using size_t's instead of ints or longs 
+*/
 
-
 #include <errno.h>
 #include <assert.h>
 #include <string.h>
@@ -44,12 +46,10 @@
   const scat_element *curr = scat->elements, *end = scat->elements + scat->num_elements;
   long ret = 0;
 
-  if (scat->num_elements < 0 || scat->num_elements > MAX_CLIENT_SCATTER_ELEMENTS)
+  if (scat->num_elements > MAX_CLIENT_SCATTER_ELEMENTS)
     return ILLEGAL_MESSAGE;
 
   for (; curr != end; ++curr) {
-    if (curr->len < 0)
-      return ILLEGAL_MESSAGE;
     ret += curr->len;
   }
   return ret;
@@ -59,14 +59,11 @@
 {
   int i;
 
-  if (scat->num_elements < 0 ||  scat->num_elements > MAX_CLIENT_SCATTER_ELEMENTS)
+  if (scat->num_elements > MAX_CLIENT_SCATTER_ELEMENTS)
     return ILLEGAL_MESSAGE;
 
   for (i = 0; i < scat->num_elements && scat->elements[i].len == 0; ++i);
 
-  if (i != scat->num_elements && scat->elements[i].len < 0)
-    return ILLEGAL_MESSAGE;
-
   pos->scat     = (scatter*) scat;
   pos->elem_ind = i;
   pos->buff_ind = 0;
@@ -75,7 +72,7 @@
 
 int scatp_end(scatp *pos, const scatter *scat) 
 {
-  if (scat->num_elements < 0 || scat->num_elements > MAX_CLIENT_SCATTER_ELEMENTS)
+  if (scat->num_elements > MAX_CLIENT_SCATTER_ELEMENTS)
     return ILLEGAL_MESSAGE;
 
   pos->scat     = (scatter*) scat;
@@ -101,7 +98,7 @@
 {
   const scatter *scat = pos->scat;
 
-  return (scat->num_elements >= 0 && scat->num_elements <= MAX_CLIENT_SCATTER_ELEMENTS &&
+  return (scat->num_elements <= MAX_CLIENT_SCATTER_ELEMENTS &&
 	  (scatp_is_end(pos) ||
 	   (pos->elem_ind >= 0 && pos->elem_ind < scat->num_elements &&
 	    pos->buff_ind >= 0 && pos->buff_ind < scat->elements[pos->elem_ind].len)));
@@ -111,7 +108,7 @@
 {
   const scatter *scat = pos->scat;
 
-  return (scat->num_elements < 0 || scat->num_elements > MAX_CLIENT_SCATTER_ELEMENTS ||
+  return (scat->num_elements > MAX_CLIENT_SCATTER_ELEMENTS ||
 	  (!scatp_is_end(pos) && 
 	   (pos->elem_ind < 0 || pos->elem_ind >= scat->num_elements || 
 	    pos->buff_ind < 0 || pos->buff_ind >= scat->elements[pos->elem_ind].len)));
@@ -119,7 +116,7 @@
 
 int scatp_is_end(const scatp *pos) 
 {
-  if (pos->scat->num_elements < 0 || pos->scat->num_elements > MAX_CLIENT_SCATTER_ELEMENTS)
+  if (pos->scat->num_elements > MAX_CLIENT_SCATTER_ELEMENTS)
     return ILLEGAL_MESSAGE;
 
   return pos->elem_ind == pos->scat->num_elements && pos->buff_ind == 0;
@@ -156,8 +153,6 @@
     curr = scat->elements + pos1->elem_ind;
     end  = scat->elements + pos2->elem_ind;
     while (++curr != end) {
-      if (curr->len < 0)
-	return ILLEGAL_MESSAGE;
       ret -= curr->len;
     }
   } else {
@@ -165,8 +160,6 @@
     curr = scat->elements + pos2->elem_ind;
     end  = scat->elements + pos1->elem_ind;
     while (++curr != end) {
-      if (curr->len < 0)
-	return ILLEGAL_MESSAGE;
       ret += curr->len;
     }
   }
@@ -204,9 +197,6 @@
   skip_bytes = num_bytes - tmp;   /* how many bytes left to skip */
   
   for (; elem_ind < scat->num_elements; ++elem_ind) {
-    if (scat->elements[elem_ind].len < 0)
-      return ILLEGAL_MESSAGE;
-
     /* use < 0 because it jumps over any zero length buffers */
     if ((skip_bytes -= scat->elements[elem_ind].len) < 0) {
       skip_bytes += scat->elements[elem_ind].len; /* restore to positive */
@@ -245,9 +235,6 @@
   skip_bytes = num_bytes - pos->buff_ind;
   
   for (e_ind = pos->elem_ind - 1; e_ind >= 0; --e_ind) {
-    if (scat->elements[e_ind].len < 0)
-      return ILLEGAL_MESSAGE;
-
     /* again we want to ignore any zero length buffers */
     if (scat->elements[e_ind].len > 0) {
       elem_ind = e_ind; /* elem_ind must reference a non-empty element buffer */

Modified: trunk/libspread/sp.c
===================================================================
--- trunk/libspread/sp.c	2014-01-06 19:19:50 UTC (rev 630)
+++ trunk/libspread/sp.c	2014-01-06 19:47:15 UTC (rev 631)
@@ -1100,7 +1100,6 @@
 
 	for( i=0, mess_len=0; i < scat_mess->num_elements; i++ )
 	{
-		if( scat_mess->elements[i].len < 0 ) return ( ILLEGAL_MESSAGE );
 		mess_len += scat_mess->elements[i].len;
 	}
 
@@ -1317,25 +1316,11 @@
                         Flip_mess( head_ptr );
                 }
         }
-        /* Validate user's scatter */
+
 	for( max_mess_len = 0, i=0; i < scat_mess->num_elements; i++ ) {
-                if ( scat_mess->elements[i].len < 0 )   {
-                        if ( !drop_semantics && !This_session_message_saved) {
-                                Mutex_lock( &Struct_mutex );
-                                if( ses != SP_get_session( mbox ) ){
-                                        Mutex_unlock( &Struct_mutex );
-					Mutex_unlock( &Sessions[ses].recv_mutex );
-                                        return( ILLEGAL_SESSION );
-                                }
-                                memcpy(&(Sessions[ses].recv_saved_head), &mess_head, sizeof(message_header) );
-                                Sessions[ses].recv_message_saved = 1;
-                                Mutex_unlock( &Struct_mutex );
-                        }
-			Mutex_unlock( &Sessions[ses].recv_mutex );
-                        return( ILLEGAL_MESSAGE );
-                }
 		max_mess_len += scat_mess->elements[i].len;
         }
+
         /* Validate num_groups and data_len */
         if (head_ptr->num_groups < 0) {
             /* reject this message since it has an impossible (negative) num_groups