message: core(ocl): do not split refcount operations / compare
  check result from CV_XADD() directly
  decrease urefcount after unmap() call only
diff: @@ -84,14 +84,11 @@ UMatData::~UMatData()
  allocatorFlags_ = 0;
  if (originalUMatData)
  {
  - UMatData* u = originalUMatData;
  - CV_XADD(&(u->urefcount), -1);
  - CV_XADD(&(u->refcount), -1);
  bool showWarn = false;
  - if (u->refcount == 0)
  + UMatData* u = originalUMatData;
  + bool zero_Ref = CV_XADD(&(u->refcount), -1) == 1;
  + if (zero_Ref)
  {
  - if (u->urefcount > 0)
  - showWarn = true;
  // simulate Mat::deallocate
  if (u->mapcount != 0)
  {
  @@ -102,7 +99,10 @@ UMatData::~UMatData()
  // we don't do "map", so we can't do "unmap"
  }
  }
  - if (u->refcount == 0 && u->urefcount == 0) // oops, we need to free resources
  + bool zero_URef = CV_XADD(&(u->urefcount), -1) == 1;
  + if (zero_Ref && !zero_URef)
  + showWarn = true;
  + if (zero_Ref && zero_URef) // oops, we need to free resources
  {
  showWarn = true;
  // simulate UMat::deallocate
  