The MASM Forum

Projects => ObjAsm => Topic started by: HSE on March 20, 2016, 01:44:59 AM

Title: MIP_SETPROPERROR?
Post by: HSE 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.

A couple of years later: The project can work with AsmC.
Title: Re: MIP_SETPROPERROR?
Post by: Biterider 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
Title: Re: MIP_SETPROPERROR?
Post by: HSE 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 
Title: Re: MIP_SETPROPERROR?
Post by: Biterider 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
Title: Re: MIP_SETPROPERROR?
Post by: HSE 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
Title: Re: MIP_SETPROPERROR?
Post by: Biterider 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
Title: Re: MIP_SETPROPERROR?
Post by: HSE 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:

Title: Re: MIP_SETPROPERROR?
Post by: Biterider 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
Title: Re: MIP_SETPROPERROR?
Post by: HSE 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.
Title: Re: MIP_SETPROPERROR?
Post by: HSE 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"
Title: Solved problem with libraries
Post by: HSE 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:


Title: Re: MIP_SETPROPERROR?
Post by: Biterider 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
Title: Re: MIP_SETPROPERROR?
Post by: HSE 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
...
Title: Re: MIP_SETPROPERROR?
Post by: Biterider on May 21, 2016, 04:08:12 PM
Hi HSE
Glad to hear you found the issue.

Biterider
Title: Re: MIP_SETPROPERROR?
Post by: HSE 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
Title: Re: MIP_SETPROPERROR?
Post by: Biterider on May 22, 2016, 06:03:10 AM
Hi
My best guess is that HJWAsm does't expand the symbols in exact the same way ML does.

Biterider