Comm job callbacks need job's cbdata pointer, not a job pointer.

Otherwise, in complex inheritance hierarchies, some [inner] classes will
hit cbdata cookie assertions when scheduling Comm calls with callbacks.

=== modified file 'src/CommCalls.h'
--- src/CommCalls.h	2013-10-25 00:13:46 +0000
+++ src/CommCalls.h	2014-01-14 02:12:00 +0000
@@ -159,41 +159,41 @@ public:
 // Get comm params of an async comm call
 template <class Params>
 Params &GetCommParams(AsyncCall::Pointer &call)
 {
     typedef CommDialerParamsT<Params> DialerParams;
     DialerParams *dp = dynamic_cast<DialerParams*>(call->getDialer());
     assert(dp);
     return dp->params;
 }
 
 // All job dialers with comm parameters are merged into one since they
 // all have exactly one callback argument and differ in Params type only
 template <class C, class Params_>
 class CommCbMemFunT: public JobDialer<C>, public CommDialerParamsT<Params_>
 {
 public:
     typedef Params_ Params;
     typedef void (C::*Method)(const Params &io);
 
     CommCbMemFunT(const CbcPointer<C> &aJob, Method aMeth): JobDialer<C>(aJob),
-            CommDialerParamsT<Params_>(aJob.get()),
+            CommDialerParamsT<Params_>(aJob->toCbdata()),
             method(aMeth) {}
 
     virtual bool canDial(AsyncCall &c) {
         return JobDialer<C>::canDial(c) &&
                this->params.syncWithComm();
     }
 
     virtual void print(std::ostream &os) const {
         os << '(';
         this->params.print(os);
         os << ')';
     }
 
 public:
     Method method;
 
 protected:
     virtual void doDial() { ((&(*this->job))->*method)(this->params); }
 };
 


