summaryrefslogtreecommitdiff
path: root/matlab/src/Future.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2017-10-13 18:41:38 +0200
committerJose <jose@zeroc.com>2017-10-13 18:41:38 +0200
commitd46f067bb9efca15b3fc69ed81d54dbe59d6686e (patch)
tree5f5fab14cbf919c64a272a25944bbcefb324726a /matlab/src/Future.cpp
parentRemove extra ICE_MATLAB_API macros (diff)
downloadice-d46f067bb9efca15b3fc69ed81d54dbe59d6686e.tar.bz2
ice-d46f067bb9efca15b3fc69ed81d54dbe59d6686e.tar.xz
ice-d46f067bb9efca15b3fc69ed81d54dbe59d6686e.zip
Replace SELF/DEREF macros with deref template function
Diffstat (limited to 'matlab/src/Future.cpp')
-rw-r--r--matlab/src/Future.cpp21
1 files changed, 10 insertions, 11 deletions
diff --git a/matlab/src/Future.cpp b/matlab/src/Future.cpp
index ba53f5b7878..e6568e19789 100644
--- a/matlab/src/Future.cpp
+++ b/matlab/src/Future.cpp
@@ -100,15 +100,13 @@ IceMatlab::SimpleFuture::isFinished() const
return _done || _exception;
}
-#define SFSELF (*(reinterpret_cast<shared_ptr<SimpleFuture>*>(self)))
-
extern "C"
{
mxArray*
Ice_SimpleFuture_unref(void* self)
{
- delete &SFSELF;
+ delete reinterpret_cast<shared_ptr<SimpleFuture>*>(self);
return 0;
}
@@ -117,7 +115,7 @@ Ice_SimpleFuture_wait(void* self, unsigned char* ok)
{
// TBD: Timeout?
- bool b = SFSELF->waitUntilFinished();
+ bool b = deref<SimpleFuture>(self)->waitUntilFinished();
*ok = b ? 1 : 0;
return 0;
}
@@ -125,32 +123,33 @@ Ice_SimpleFuture_wait(void* self, unsigned char* ok)
mxArray*
Ice_SimpleFuture_state(void* self)
{
- return createResultValue(createStringFromUTF8(SFSELF->state()));
+ return createResultValue(createStringFromUTF8(deref<SimpleFuture>(self)->state()));
}
mxArray*
Ice_SimpleFuture_cancel(void* self)
{
- SFSELF->cancel();
+ deref<SimpleFuture>(self)->cancel();
return 0;
}
mxArray*
Ice_SimpleFuture_check(void* self)
{
- if(!SFSELF->waitUntilFinished())
+ auto f = deref<SimpleFuture>(self);
+ if(!f->waitUntilFinished())
{
- assert(SFSELF->getException());
+ assert(f->getException());
try
{
- rethrow_exception(SFSELF->getException());
+ rethrow_exception(f->getException());
}
catch(const std::exception& ex)
{
//
// The C++ object won't be used after this.
//
- delete &SFSELF;
+ delete reinterpret_cast<shared_ptr<SimpleFuture>*>(self);
return convertException(ex);
}
}
@@ -158,7 +157,7 @@ Ice_SimpleFuture_check(void* self)
//
// The C++ object won't be used after this.
//
- delete &SFSELF;
+ delete reinterpret_cast<shared_ptr<SimpleFuture>*>(self);
return 0;
}