Author Topic: MIP_SETPROPERROR?  (Read 3272 times)

HSE

  • Member
  • ****
  • Posts: 554
  • <AMD>< 7-32>
MIP_SETPROPERROR?
« on: March 20, 2016, 01:44:59 AM »
Hi Biterider!!

Do You remember what means this error?

Object ID = 280 (Graph2d), Error Code = 536871252 (MIP_SETPROPERROR: SetProp failed)
Object ID = 810 (Grafico), Error Code = 536871252 (MIP_SETPROPERROR: SetProp failed)
Object ID = 170 (Integ01), Error Code = 536871252 (MIP_SETPROPERROR: SetProp failed)

Apparently Graph2d (2005) predate the debug system. And leaks memory every other line ( also predate Resguard).

Thanks. HSE

LATER: very interesting, in the not really working-demo implementation there is no leaks. Only one fixed memory allocation is made free correctly. Any errors either.
« Last Edit: March 21, 2016, 04:07:25 AM by HSE »

Biterider

  • Moderator
  • Member
  • *****
  • Posts: 126
  • ObjAsm32
    • ObjAsm32
Re: MIP_SETPROPERROR?
« Reply #1 on: March 21, 2016, 06:33:29 AM »
Hi HSE
The problem seems to be in the MsgInterceptor.Init method which seems to have a problem setting the window property (SetProp). Check the parameters of the API call to see what is going wrong.

Regards, Biterider

HSE

  • Member
  • ****
  • Posts: 554
  • <AMD>< 7-32>
Re: MIP_SETPROPERROR?
« Reply #2 on: March 21, 2016, 11:23:06 AM »
I found a very elemental problem  :icon_redface:

I convert the pointed object in an embeded object, and I don't erase the iniatilization. Apparently double  initialization was the error.

Thanks. HSE 

Biterider

  • Moderator
  • Member
  • *****
  • Posts: 126
  • ObjAsm32
    • ObjAsm32
Re: MIP_SETPROPERROR?
« Reply #3 on: March 22, 2016, 03:02:02 AM »
Hi
Embedding the object only reserves space on the host object, but doesn't set this property. In fact, if you are intitializing somehow twice, you can get this error. I would suggest to set a breakpoint in the MsgInterceptor.Init method and trace from where the call comes. In most cases there is something wrong with the invokation logic.

Biterider

HSE

  • Member
  • ****
  • Posts: 554
  • <AMD>< 7-32>
Re: MIP_SETPROPERROR?
« Reply #4 on: March 22, 2016, 12:39:27 PM »
Good clue  :t.

Initialization work well when using MakeObjects for MsgInterceptor, the problem is when using LoadObjects. I see now that demo07 use MakeObjects, (surely isn't related at all to pointed/embeded) .

I note this issue in some objects that create windows, obviously the same is true for objects that manage windows handles.

Thanks. HSE

Biterider

  • Moderator
  • Member
  • *****
  • Posts: 126
  • ObjAsm32
    • ObjAsm32
Re: MIP_SETPROPERROR?
« Reply #5 on: March 23, 2016, 04:15:59 AM »
Hi
THe difference between MakeObjects & LoadObjects is that the first compiles the code, while the second loads the compiled library to speedup the overall compilation process.
If you have changed something in the source code and you haven't compiled the object, you have always to use MakeObjects.

Biterider

HSE

  • Member
  • ****
  • Posts: 554
  • <AMD>< 7-32>
Re: MIP_SETPROPERROR?
« Reply #6 on: March 23, 2016, 06:10:43 AM »
I begin to make libraries when I'm begin to use SmplMath, because in that way You have less macro levels. 

The fact is I can't make libraries with objects that create windows. Perhaps some "addr" issue in general and perhaps $Methodaddr in particular.

Of course, here "issue" means "I don't know" or, how Hutch say, "there is a feature I don't understand"  :biggrin:


Biterider

  • Moderator
  • Member
  • *****
  • Posts: 126
  • ObjAsm32
    • ObjAsm32
Re: MIP_SETPROPERROR?
« Reply #7 on: March 23, 2016, 06:10:06 PM »
Hi
macro level is indeed a very restrictive limitation of ml.
I want to understand a bit more what you mean with the "addr" issue and why you can't create the object libraries.

Biterider

HSE

  • Member
  • ****
  • Posts: 554
  • <AMD>< 7-32>
Re: MIP_SETPROPERROR?
« Reply #8 on: March 24, 2016, 12:41:13 AM »
Hi Biterider!

You can try to make a library from GridW.asm, for example.

The addr thing surely is my error, but you can see why is different making or loading MsgInterceptor.

Of course I will try to understand a little better what happen, but essentially all is working.

To compile the project is needed a modified compiler. JWasm13b in theory support 1600 bytes lines and 320 macro nesting levels. (the only collision is ".for", I think).

HSE

A day later: the problem with libraries apparently is some kind of recurrency in StaticMethod macro (used as StaticMethod Startup), libraries that work correctly never call StaticMethod.
« Last Edit: May 08, 2016, 07:07:28 AM by HSE »

HSE

  • Member
  • ****
  • Posts: 554
  • <AMD>< 7-32>
Re: MIP_SETPROPERROR?
« Reply #9 on: May 08, 2016, 07:09:59 AM »
The new HJWAsm32 without .for collision (replaced by .forh )


Also .switch, .case,.default,.endswitch have additional "h"
« Last Edit: June 05, 2016, 03:19:58 AM by HSE »

HSE

  • Member
  • ****
  • Posts: 554
  • <AMD>< 7-32>
Solved problem with libraries
« Reply #10 on: May 09, 2016, 06:32:02 AM »
What other thing could be than a foolish error?  :biggrin:

The Ancestor (window) was not included and, because StaticMethod trigger a recurrency in that case, never show what the error is.

Interestling, all the similar main modules I make are copies of the same base file, then look like a systemic problem. :dazzled:



Biterider

  • Moderator
  • Member
  • *****
  • Posts: 126
  • ObjAsm32
    • ObjAsm32
Re: MIP_SETPROPERROR?
« Reply #11 on: May 12, 2016, 02:07:23 AM »
Hi hse
I'm not at home for the next 2 weeks. I'll look into your  issue when i'm back.
Biterider

HSE

  • Member
  • ****
  • Posts: 554
  • <AMD>< 7-32>
Re: MIP_SETPROPERROR?
« Reply #12 on: May 16, 2016, 02:12:12 AM »
Hi Biterider!

I found it's a problem related with HJWASM. With ML the error detection work:
Code: [Select]
...
.\Grid\GridW.inc(23) : error A2052: forced error : Undefined ancestor: Window
 BuildInheritancePath(2): Macro Called From
  Object(36): Macro Called From
   .\Grid\GridW.inc(23): Include File
.\Grid\GridW.inc(59) : error A2052: forced error : Undefined method: GridW.WndProc
 $MethodAddr(6): Macro Called From
  m2m(0): Macro Called From
   .\Grid\GridW.inc(59): Include File
.\Grid\GridW.inc(88) : error A2052: forced error : Undefined ancestor object: Window
 ACall(24): Macro Called From
  .\Grid\GridW.inc(88): Include File
.\Grid\GridW.inc(116) : error A2052: forced error : Undefined ancestor object: Window
 ACall(24): Macro Called From
  .\Grid\GridW.inc(116): Include File
...

Biterider

  • Moderator
  • Member
  • *****
  • Posts: 126
  • ObjAsm32
    • ObjAsm32
Re: MIP_SETPROPERROR?
« Reply #13 on: May 21, 2016, 04:08:12 PM »
Hi HSE
Glad to hear you found the issue.

Biterider

HSE

  • Member
  • ****
  • Posts: 554
  • <AMD>< 7-32>
Re: MIP_SETPROPERROR?
« Reply #14 on: May 22, 2016, 01:10:16 AM »
Hi Biterider!

Yes, a very elemental  error :icon_redface:

What I not found is the cause of error detection differences between HJWAsm and ML. Any clue?

ML also trigger recurrency.

Thanks. HSE