Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development

Plug-in Issues

<< < (3/3)

Avan:

--- Quote from: Miguel Gimenez on February 17, 2021, 01:48:35 pm ---EDIT: looks like C::B code uses %d to print a long. In 32 bits int and long have the same length, but not in 64 bits, hence the assertion. Can you get a stack trace?

--- End quote ---

I'm using 3.1.3, that the only difference between our setups. I'll happily move to 3.1.4, as long that doesn't bother me with incompatibilities with the nightlies. Did it build right away or did you have to nudge it into place with a sledge hammer? ;o)

Can you even do a stack trace during plugin creation? That's the only place and time the message appears. Reopening the plugin does not trigger this (I have not ticked the "dont bother me again" box, in case you were wondering).

EDIT: And I use 64 bit and one release earlier but everything else on the printout from About is the same.

Miguel Gimenez:
The change to wx3.1.4 is completely painless.

The assert is shown when the project is created, so the code must be in the wizard. Probably you can debug C::B from devel31 using C::B from output31 and break it when the assert appears; I would do it, but I can not reproduce the issue.

oBFusCATed:
This is probably an explanation for the assert https://sourceforge.net/p/codeblocks/tickets/900/

Avan:

--- Quote from: oBFusCATed on February 17, 2021, 09:28:37 pm ---This is probably an explanation for the assert https://sourceforge.net/p/codeblocks/tickets/900/

--- End quote ---

Found that bit of code. It appears _SQ64 is not defined here so the %lld would never be compiled.

#ifdef _SQ64
            result.Printf(_T("%s%ld"), str1.c_str(), sa.GetInt(2)); <-- This line is greyed out.
#else
            result.Printf(_T("%s%d"), str1.c_str(), sa.GetInt(2));
#endif

The only location I could find a #define _SQ64 is in squirrel.h and _WIN64 is defined in the Build Options.

#if (defined(_WIN64) || defined(_LP64))
#ifndef _SQ64
#define _SQ64
#endif
#endif

Can I count on C::B that if squirrel.h is somehow included then this line is correctly excluded? And should it be excluded in a 64 bit build?

BTW, I changed the next line to read %lld but noticed no differences in behaviour.

Avan:

--- Quote from: Miguel Gimenez on February 17, 2021, 04:46:02 pm ---The change to wx3.1.4 is completely painless.

The assert is shown when the project is created, so the code must be in the wizard. Probably you can debug C::B from devel31 using C::B from output31 and break it when the assert appears; I would do it, but I can not reproduce the issue.

--- End quote ---

I'm not very familiar with C::B but I'm noticing behaviour that can't be right (like bookmarks not working) so I will first build 12293 and wx314 before I continu. Possibly there's a glitch somewhere.

Navigation

[0] Message Index

[*] Previous page

Go to full version