int      result;
int      result=0;
XP_HashListAddObject (XP_HashList * hash_struct, void * new_ele){    uint32   bucket_num;    int      result;    XP_List * list_ptr;    void   * obj_ptr;    if(!hash_struct)	   return -1;    /* get an integer from the hashing function      */    bucket_num = (*hash_struct->hash_func)(new_ele);     /* adjust the integer to the size of the hash table     */    bucket_num = bucket_num % hash_struct->size;    list_ptr = hash_struct->list[bucket_num];    if(!list_ptr)	  {	    list_ptr = XP_ListNew();			if(!list_ptr)			return -1;		hash_struct->list[bucket_num] = list_ptr;	  }    /* run through the list and find an object that returns     * greater than 0 when compared     */    while((obj_ptr = XP_ListNextObject(list_ptr)) != 0)	  {		result = (*hash_struct->comp_func)(obj_ptr, new_ele);		if(result > -1)		   break;	  }    if(obj_ptr && result == 0)	  {		/* the objects are the same!		 */		return(XP_HASH_DUPLICATE_OBJECT);	  }    if(obj_ptr)	  {		/* insert right before the obj_ptr 	     */        XP_ListInsertObject(hash_struct->list[bucket_num], obj_ptr, new_ele);	  }	else	  {		/* it's either the first element to go into the list         * or it is the last by comparison	     */        XP_ListAddObjectToEnd(hash_struct->list[bucket_num], new_ele);	  }    return 0; /* #### what should return value be? */}