| version 2.159 | version 2.160 |
|---|
| |
| /******************** Basic support *****************/ | /******************** Basic support *****************/ |
| extern "C" void CkDeliverMessageFree(int epIdx,void *msg,void *obj) | extern "C" void CkDeliverMessageFree(int epIdx,void *msg,void *obj) |
| { | { |
| | #ifndef CMK_OPTIMIZE |
| | int previousChareID = setMemoryChareIDFromPtr(obj); |
| | int alreadyUserCode = _entryTable[epIdx]->inCharm ? 0 : 1; |
| | setMemoryStatus(alreadyUserCode); |
| | CpdBeforeEp(epIdx); |
| | #endif |
| _entryTable[epIdx]->call(msg, obj); | _entryTable[epIdx]->call(msg, obj); |
| | #ifndef CMK_OPTIMIZE |
| | CpdAfterEp(epIdx); |
| | setMemoryChareID(previousChareID); |
| | setMemoryStatus(alreadyUserCode); |
| | #endif |
| if (_entryTable[epIdx]->noKeep) | if (_entryTable[epIdx]->noKeep) |
| { /* Method doesn't keep/delete the message, so we have to: */ | { /* Method doesn't keep/delete the message, so we have to: */ |
| CkFreeMsg(msg); | CkFreeMsg(msg); |
| |
| CkAbort("CkDeliverMessageReadonly: message pack/unpack changed message pointer!"); | CkAbort("CkDeliverMessageReadonly: message pack/unpack changed message pointer!"); |
| #endif | #endif |
| } | } |
| | #ifndef CMK_OPTIMIZE |
| | int previousChareID = setMemoryChareIDFromPtr(obj); |
| | int alreadyUserCode = 1; |
| | setMemoryStatus(alreadyUserCode); |
| | #endif |
| _entryTable[epIdx]->call(deliverMsg, obj); | _entryTable[epIdx]->call(deliverMsg, obj); |
| | #ifndef CMK_OPTIMIZE |
| | setMemoryChareID(previousChareID); |
| | setMemoryStatus(alreadyUserCode); |
| | #endif |
| } | } |
| | |
| static inline void _invokeEntryNoTrace(int epIdx,envelope *env,void *obj) | static inline void _invokeEntryNoTrace(int epIdx,envelope *env,void *obj) |