diff --git a/idp/macro_ddm.idp b/idp/macro_ddm.idp index 2b4f98e3b..5cb906e0a 100644 --- a/idp/macro_ddm.idp +++ b/idp/macro_ddm.idp @@ -719,6 +719,7 @@ IFMACRO(ThName#RefinementFactor) int privateS = ThName#RefinementFactor; ENDIFMACRO IFMACRO(ThName#Overlap) +assert(ThName#Overlap > 0); meshN privateBorder; buildOverlap(ThName, privateBorder, -111111, privateS, ThName#Overlap, intersection, privateDmesh#ThName#khi[0], P1, ThName#Comm, false); ENDIFMACRO diff --git a/plugin/seq/scotch.cpp b/plugin/seq/scotch.cpp index 35f50e137..ad837ad05 100644 --- a/plugin/seq/scotch.cpp +++ b/plugin/seq/scotch.cpp @@ -81,7 +81,11 @@ AnyType SCOTCH_Op< T, V, K >::operator( )(Stack stack) const { int nve = T::RdHat::d + 1; long lpart = GetAny< long >((*lpartition)(stack)); - ffassert(lpart > 1 && part->n == nt && lpart < nt); + ffassert(lpart > 0 && part->n == nt && lpart < nt); + if(lpart == 1) { + *part = 0.0; + return 0L; + } KN< long > *weight = nargs[0] ? GetAny< KN< long > * >((*nargs[0])(stack)) : (KN< long > *)0; @@ -140,9 +144,7 @@ AnyType SCOTCH_Op< T, V, K >::operator( )(Stack stack) const { SCOTCH_stratExit(&StratSCOTCH); *part = epart; delete[] verttab; - if (velotab) { - delete[] velotab; - } + delete[] velotab; return 0L; }