what patches are you interested in?

Wolfgang Spraul <[email protected]>
Newsgroups gmane.comp.video.graphicsmagick.core
Organization Q AG
Message-ID <[email protected]>
Bob -

I sent you a SampleImage() optimization patch a few days ago, but haven't 
heard back yet. I guess you are away right now.
Meanwhile, I would like to understand what types of patches you are interested 
in. I have several of them, but some have downsides. Here is an (uncomplete) 
list:

---1
Use the preprocessor (#define) or compiler (typedef) to make it possible to 
switch the C type used for floating point variables. I'm thinking about a 
patch that would allow either double or float.

---2
Add Drawxx() functions that render immediately without going thru the mvg 
string. I suggest to leave the current draw functions like they are (i.e. 
render delayed in DrawRender()), and add DrawLineNow() or similar (because 
some pattern operations relay on the ability to cache operations in some 
format, and the current string cache works nicely).
The reason to add DrawxxxNow() functions at all comes from waste of memory and 
CPU if you have large polygons (quite common in WMF, for example).

---3
cache cleanup. This is drastic, but I don't think competing and overlapping 
functions are of any value. Given your last answer to this topic, I would 
suggest to remove all cache functions except for the 'nexus' family.

---4
preprocessor defines to turn off certain features, e.g. the resource.h 
function family (e.g. #define GM_NO_RESOURCE_MGMT), the semaphores 
(GM_NO_SEMAPHORES), PseudoClass support (GM_NO_PSEUDO_CLASS)

---5
support for FILE* fopen() instead of int open() in cache.c

---6
magick/render.c:DrawImage() has unnecessary (?) allocation codes where it says 
'if (i >= (long) (number_points-length))'.

---7
magick/utility.c:AllocateString() should return 0 if source == 0, and should 
otherwise only allocate strlen(source)+1 bytes.

There will be more, but you get the idea.
My question is: How interested are you in such patches? Some of them have 
downsides (ABI incompatility, etc.), and I'm not sure whether you have a 
stable tree and a devel tree, or what policies you generally have for patches 
like the above ones.
My proposed cache cleanup would remove functions that others may be using, or 
even like, or whatever.
---
On our end, we would like to keep the link between our tree and the official 
gm tree as close as possible. Therefore, I will look into switching from CVS 
to the arch revision control system on our side hoping that arch will allow 
us to make all the changes outlined above even if you don't like them for the 
official gm tree (some we did already), and at the same time make it easy for 
us to propagate changes in both directions.

Regards,
Wolfgang



-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.