From: Shawn Y. <sya...@ge...> - 2006-09-06 19:17:18
|
> So if you call member you can't expect that the result =20 > variable is modified if you assign to it (due to reference counting = the =20 > returned variable will just be dismissed and a new one with the same = name =20 > gets created). In reality the BB object I described (what you call the result variable = here) is really a smart proxy object that already exists somewhere else = and knows how to do the "right thing" with the data. SWIG returning the = pointer to BB should be good enough as far as that goes. The C++ = handles that side of it. =20 Where I suspect the failure lies is in SWIG's expectation of how the = function will be called. SWIG probably thinks I will be calling the = member function like so: @bb =3D BB.new; @bb =3D @aa.member; But I'd probably never do that in this case, because this member = function was carefully designed to look like a data member. Somehow = SWIG needs to map Ruby data getter and setter assignment syntax onto the = member function, actually onto the reference (pointer) returned by the = member function. Shawn Yarbrough Senior E-Trading Developer Gelber Group, LLC sya...@ge... THE MESSAGES AND DOCUMENTS TRANSMITTED WITH THIS NOTICE CONTAIN = CONFIDENTIAL INFORMATION BELONGING TO THE SENDER. IF YOU ARE NOT THE = INTENDED RECIPIENT OF THIS INFORMATION, YOU ARE HEREBY NOTIFIED THAT ANY = DISCLOSURE, COPYING, DISTRIBUTION OR USE OF THE INFORMATION IS STRICTLY = PROHIBITED. IF YOU HAVE RECEIVED THIS TRANSMISSION IN ERROR, PLEASE = NOTIFY THE SENDER IMMEDIATELY. |