Add some CGAL_assume functions in functions manipulating marks in combinatorial map class.

This commit is contained in:
Guillaume Damiand 2014-11-07 16:42:32 +01:00
parent 2d72cd7f7e
commit 8eddea1e5b
1 changed files with 21 additions and 2 deletions

View File

@ -743,6 +743,8 @@ namespace CGAL {
bool is_reserved(int amark) const
{
CGAL_assertion(amark>=0 && (size_type)amark<NB_MARKS);
CGAL_assume( (size_type)amark<NB_MARKS );
return (mnb_times_reserved_marks[(size_type)amark]!=0);
}
@ -753,6 +755,8 @@ namespace CGAL {
size_type number_of_marked_darts(int amark) const
{
CGAL_assertion( is_reserved(amark) );
CGAL_assume( (size_type)amark<NB_MARKS );
return mnb_marked_darts[(size_type)amark];
}
@ -813,14 +817,21 @@ namespace CGAL {
void share_a_mark(int amark) const
{
CGAL_assertion( is_reserved(amark) );
++mnb_times_reserved_marks[amark];
CGAL_assume( (size_type)amark<NB_MARKS );
++mnb_times_reserved_marks[(size_type)amark];
}
/** @return the number of times a mark is reserved.
* @param amark the mark to share.
*/
size_type get_number_of_times_mark_reserved(int amark) const
{ return mnb_times_reserved_marks[amark]; }
{
CGAL_assertion( (size_type)amark<NB_MARKS );
CGAL_assume( (size_type)amark<NB_MARKS );
return mnb_times_reserved_marks[amark];
}
/** Negate the mark of all the darts for a given mark.
* After this call, all the marked darts become unmarked and all the
@ -830,6 +841,7 @@ namespace CGAL {
void negate_mark(int amark) const
{
CGAL_assertion( is_reserved(amark) );
CGAL_assume( (size_type)amark<NB_MARKS );
mnb_marked_darts[amark] = number_of_darts() - mnb_marked_darts[amark];
@ -845,6 +857,7 @@ namespace CGAL {
{
// CGAL_assertion( adart != null_dart_handle );
CGAL_assertion( is_reserved(amark) );
CGAL_assume( (size_type)amark<NB_MARKS );
return get_dart_mark(adart, amark)!=mmask_marks[(size_type)amark];
}
@ -859,6 +872,7 @@ namespace CGAL {
{
CGAL_assertion( adart != null_dart_handle );
CGAL_assertion( is_reserved(amark) );
CGAL_assume( (size_type)amark<NB_MARKS );
if (is_marked(adart, amark) != astate)
{
@ -877,6 +891,7 @@ namespace CGAL {
{
CGAL_assertion( adart != null_dart_handle );
CGAL_assertion( is_reserved(amark) );
CGAL_assume( (size_type)amark<NB_MARKS );
if (is_marked(adart, amark)) return;
@ -892,6 +907,7 @@ namespace CGAL {
{
CGAL_assertion( adart != null_dart_handle );
CGAL_assertion( is_reserved(amark) );
CGAL_assume( (size_type)amark<NB_MARKS );
if (!is_marked(adart, amark)) return;
@ -907,6 +923,7 @@ namespace CGAL {
void mark_null_dart(int amark) const
{
CGAL_assertion( is_reserved(amark) );
CGAL_assume( (size_type)amark<NB_MARKS );
#ifdef CGAL_CMAP_DEPRECATED
if ( null_dart_handle!=NULL ) // Pb with static null_dart_handle for windows
@ -920,6 +937,7 @@ namespace CGAL {
void unmark_null_dart(int amark) const
{
CGAL_assertion( is_reserved(amark) );
CGAL_assume( (size_type)amark<NB_MARKS );
#ifdef CGAL_CMAP_DEPRECATED
if ( null_dart_handle!=NULL ) // Pb with static null_dart_handle for windows
@ -956,6 +974,7 @@ namespace CGAL {
void free_mark(int amark) const
{
CGAL_assertion( is_reserved(amark) );
CGAL_assume( (size_type)amark<NB_MARKS );
if ( mnb_times_reserved_marks[amark]>1 )
{