[gecode-users] Copying spaces
Malcolm Ryan
malcolmr at cse.unsw.edu.au
Thu Feb 5 07:25:31 CET 2009
Ah, I was using a custom Branching which I created in the original
space but then applied to the copy. Is there a way to clone the
Branching alongside the space?
Malcolm
On 05/02/2009, at 2:15 AM, Christian Schulte wrote:
> That is absolutely bizarre! unforce de-registers a propagator that
> requires
> deletion (many propagators do not have to be deleted if their space
> are
> deleted. some need explicit deletion as they keep external memory for
> example).
>
> So, I have no idea, I thought for a while. Do you use anything self-
> built
> (propagator, branching)? Or maybe is your copy function and/or the
> constructor called by the copy function wrong (forgot something to
> update
> and just assigned it)? That is most likely.
>
> Christian
>
> --
> Christian Schulte, www.ict.kth.se/~cschulte/
>
>
> -----Original Message-----
> From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On
> Behalf
> Of Malcolm Ryan
> Sent: Wednesday, February 04, 2009 10:03 AM
> To: gecode list
> Subject: Re: [gecode-users] Copying spaces
>
> On 04/02/2009, at 7:14 PM, Christian Schulte wrote:
>> Copy() is an internal function (maybe we should make it protected)
>> use by
>> the clone() operation. So you have to use clone() to create a clone
>> of a
>> space!
>
> Thanks, that sorted out that problem... but left me with another. I
> haven't quite isolated it down to a simple example yet, but can you
> offer any idea what might be causing this:
>
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_INVALID_ADDRESS at address: 0x0033d000
> Gecode::Actor::unforce () at core.icc:1591
> 1591 while (this != *f)
>
> The GDB backtrace shows:
>
> #0 Gecode::Actor::unforce () at core.icc:1591
> #1 Gecode::Actor::unforce () at core.icc:1591
> #2 Gecode::Int::Extensional::Base<Gecode::Int::IntView,
> true>::dispose (this=0x1031038, home=0xf23d20) at gecode/int/
> extensional.cc:145
> #3 0x0058ae7d in Gecode::Actor::unforce () at core.icc:1646
> #4 0x0058ae7d in
> Gecode::Int::Extensional::Basic<Gecode::Int::IntView>::propagate
> (this=0x1031038, home=0xf23d20) at gecode/int/extensional.cc:145
> #5 0x0026a043 in Gecode::Space::status (this=0xf23d20, pn=@0x27c1b8)
> at gecode/int/extensional.cc:145
>
> It occurs at a point in the code where I have just cloned a space and
> committed a Branching. Calling status() before the commit is fine.
> Calling it again after the commit causes this crash. If I run the same
> code on the original space (not the clone) it works fine.
>
> I know that this is not really enough detail, but if you could give me
> any idea of what kind of problem I might be facing, it could help me
> track down the bug. What is the unforce() function doing at this
> point?
>
> Malcolm
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
More information about the gecode-users
mailing list