OS/2, eCS & ArcaOS - Technical > Applications

patched PmMerge

(1/8) > >>

OS4User:
Any one brave to test ?  :)

http://gus.biysk.ru/os4/pmmerge/

Fixed:
  - a memory leak in a heap
  - missed serialization
  - access to freed memory
  - and many other small issues

Known bugs:
  -  none (so far)

Mike Kölling:

--- Quote from: OS4User on June 13, 2021, 10:26:39 am ---Any one brave to test ?  :)

--- End quote ---

Just installed on my T430. No problems after restart so far. However I have no clue what pmmerge.dll is for.
Mike

David Graser:
Installed to my ArcaOs 5.06 with all the latest patches and drivers and using the OS4 kernel.  Works great.

OS4User, I was wondering if you have heard or used NEWCALLS for OS/2 by Carsten Arnold and your opinion of this idea.  I have used it in the past with no adverse effects that I could see.  I am running the patch with your modified pmmerge.dll without any seen adverse effects so far.

http://ca-arnold.de/download/newcalls104.zip

patch for pmmerge.dll

The file PMMERGE.DLL opens the INI files with the flag
OPEN_FLAGS_WRITE_THROUGH which has the consequence that these files
are written uncached to the HD, so that the WPS is blocked partially
quite a long while. IBM made for exaggerated safety reasons,
in my opinion that is not necessary.

This Tool goes back on an idea from Peter Fitzsimmons.

At this the module entry DOSCALLS will replaced in pmmerge.dll by NEWCALLS.
The NEWCALLS.DLL contains so-called Forwarder on all functions in DOSCALLS
except DOS32OPEN, this function its by own _DOS32OPEN replaced.
If opening files, _DOS32OPEN removes the flag
OPEN_FLAGS_WRITE_THROUGH and calls then DOS32OPEN in DOSCALLS.

I wrote now a Installer and shortened the file NEWCALLS.DLL somewhat
(no, there now nothing is missing;-)).

Supplementary product like DLLRNAME are more necessary.


Installation:
Start the Install.exe without parameter.
The Installer checks the file PMMERGE.DLL and looks for the entry DOSCALLS.

Then it copies file NEWCALLS.DLL into the directory X:\OS2\DLL, whereby X is
the boot drive.

Since the file PMMERGE.DLL normally in use and thus to write is locked,
the installer unlock the DLL. Now the entry is replaced DOSCALLS by NEW CALLS.

So that the modification becomes effective, a Reboot is necessary.
It is not enough to start the WPS again.


If against expect it to disturbances comes, you can deinstall NEWCALLS also
again. Start InstNC.exe with the parameter /DeInst. The module entry NEWCALLS
is replaced again through DOSCALLS and the file NEWCALL.DLL is deleted.
A restart of the system becomes also here necessarily.

This program is freeware.

Rich Walsh:

--- Quote from: David Graser on June 13, 2021, 02:27:26 pm ---I was wondering if you have heard or used NEWCALLS for OS/2 by Carsten Arnold and your opinion of this idea.  I have used it in the past with no adverse effects that I could see.

--- End quote ---

And no benefits either. This was written 20 years ago when the author was probably running a P233 with 64mb and an IDE drive. What are you running today? Likely, something that's 20+ times faster. If say, WinOS/2, used to take 7 seconds to open and nowadays it opens instantly, what are the chances that a write to 'os2.ini' still has any meaningful impact on performance?

David Graser:
Thanks Rich for the feedback.

Rich, what is your opinion on this patch?  The last time I checked, ArcaOS was still using build 14.006.

http://hobbes.nmsu.edu/download/pub/os2/system/patches/PMFIX.zip

THIS INFORMATION IS WITHOUT ANY WARRANTY. USE AT YOUR OWN RISK.
I AM NOT RESPONSIBLE FOR ANY DAMAGE CAUSED BY USING THIS PACKAGE.


This package contains 2 Fixes to PMMERGE.DLL Build 14.006.
This build was released by IBM as pj31908 and is also part of many ECS 2.0 
and ECS 2.1 releases.

DESCRIPTION
FIX1: SYS3171 (Stack Overflow) on PMSHELL.EXE and others.

When clicking on an inactive program to get focus on it, the program crashes.
This behaviour is mainly seen when running VPC as host.
When starting several programs by fastly clicking on their icons PMSHELL may die.
A reboot is necessary to get the system back to life.

The cause for this behaviour is within function CallOemPointer.
It is used to send drawing commands to the graphics system.
Under certain conditions, this function calls WIN32SENDMSG.
If the function was called as a result of message processing, a loop may be established.
This causes the stack to be filled within the loop, ending with SYS3171.

The file named PM_SYS3171 patches CallOemPointer to not call SENDMSG anymore.
This behaviour is similar to PMMERGE Builds 14.095 and earlier.
Side effect may be lost mouse clicks when system is busy but I use this Patch
for over a Year now with no noticeable drawbacks.


FIX2: USING PM_SystemFonts->DefaultFont CHANGES ALL FORM SIZES

When setting PM_SystemFonts->DefaultFont to anything smaller than SystemProportional
many other forms (such as the settings pages of the WPS) have too small text items.
Also the height of titlebars on all windows is changed. 

The file named PM_DEFFONT patches the initial processing of pmmerge to using fixed
fontsize (using the values from SystemProportional).
So don't use this patch if you are pleased using the DefaultFont setting already.
Side effect: The IBM Help Viewer looks strange, don't know why.
Use NewView instead.



HOW TO APPLY THIS FIX

1. Make shure, you are using PMMERGE.DLL 14.106 using bldlevel utility.

2. Make a bakup of your original PMMERGE.DLL

3. Make shure that you are able to boot from disc or maintainance partition.
   Be shure! You cannot start the system with a corrupted PMMERGE!

4. Get lxlt133 from the web and unpack it into a temporary directory.
   On ECS 2.1 lxlite is already installed.

5. Copy PMMERGE.DLL to the temporary directory.

6. Expand PMMERGE.DLL using lxlite.exe, file size should be 1754169 bytes.

7. Copy the *.PAT files to the temporary directory.

8. Run PATCH.EXE PM_SYS3171.PAT /A to apply fix1

9. Run PATCH.EXE PM_DEFFONT.PAT /A to apply fix2

Navigation

[0] Message Index

[#] Next page

Go to full version