On Jun 12, Samuel Bronson ([EMAIL PROTECTED]) wrote:
> A better backtrace (that is, with debugging symbols) is:
>
> #0 0x4039ddb1 in OpenSP::ParsedSystemId::unparse (this=0xbffff52c,
> [EMAIL PROTECTED], isNdata=false, [EMAIL PROTECTED]) at
> ExtendEntityManager.cxx:2113
> #1 0x4010e441 in OpenJade_DSSSL::DssslApp::processSysid
> (this=0xbffff628, [EMAIL PROTECTED]) at DssslApp.cxx:126
> #2 0x4038cd5a in OpenSP::EntityApp::processArguments
> (this=0xbffff628, argc=4, argv=0xbffffac4) at EntityApp.cxx:82
> #3 0x40377413 in OpenSP::CmdLineApp::run (this=0xbffff628, argc=4,
> argv=0xbffffab4) at CmdLineApp.cxx:356
> #4 0x0805707e in main (argc=8, argv=0xbffffab4) at jade.cxx:206
>
> It turns out that StorageObjectSpec::operator= (called earlier in
> frame #1) forgets to copy the storageManager field. Here is a patch to
> fix that and a problem I couldn't help but notice in the method right
> above it (and to think, I claim not to know C++ ;-):
>
> --- lib/ExtendEntityManager.cxx.backup 2006-06-12 16:44:25.000000000 -0400
> +++ lib/ExtendEntityManager.cxx 2006-06-12 16:49:27.000000000 -0400
> @@ -1238,7 +1238,8 @@
> }
>
> StorageObjectSpec::StorageObjectSpec(const StorageObjectSpec& x)
> -: codingSystemName(x.codingSystemName),
> +: storageManager(x.storageManager),
> + codingSystemName(x.codingSystemName),
> codingSystem(x.codingSystem),
> specId(x.specId),
> baseId(x.baseId),
> @@ -1253,6 +1254,7 @@
> StorageObjectSpec& StorageObjectSpec::operator=(const StorageObjectSpec& x)
> {
> if (this != &x) {
> + storageManager = x.storageManager;
> codingSystemName = x.codingSystemName;
> codingSystem = x.codingSystem;
> specId = x.specId;
Thanks, I will apply this and upload. I am extremely busy these days, so
please forgive me if it takes a little while. Thanks.
--
Neil Roeth
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]