<feed xmlns='http://www.w3.org/2005/Atom'>
<title>PROJ/src/pj_malloc.c, branch azp</title>
<subtitle>Forked from https://github.com/OSGeo/PROJ</subtitle>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/'/>
<entry>
<title>cpp conversion: minimal steps to fix compilation errors, not warnings</title>
<updated>2018-12-26T09:08:53+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2018-12-18T19:24:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=610957f7035242f15743c399ffd429b92bc36206'/>
<id>610957f7035242f15743c399ffd429b92bc36206</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>IWYU: Partial PJ_natearth.c..rtodms.c</title>
<updated>2018-05-15T20:42:20+00:00</updated>
<author>
<name>Kurt Schwehr</name>
<email>schwehr@google.com</email>
</author>
<published>2018-05-15T20:42:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=1e8824517900d37232468b9e3d7f3724e7ffa786'/>
<id>1e8824517900d37232468b9e3d7f3724e7ffa786</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove angle brackets for proj headers (#849)</title>
<updated>2018-03-11T12:17:07+00:00</updated>
<author>
<name>Thomas Knudsen</name>
<email>busstoptaktik@users.noreply.github.com</email>
</author>
<published>2018-03-11T12:17:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=ab87b8ef0af7ef888b7d810db610ead6eb784d71'/>
<id>ab87b8ef0af7ef888b7d810db610ead6eb784d71</id>
<content type='text'>
* Avoid using angle brackets for PROJ headers.

Switching from #include &lt;proj.h&gt; to #include "proj.h",
and correspondingly for projects.h and proj_api.h,
reduces the risk of accidentally picking up a system
installed older version of the header while building
a new version of PROJ.

* Also handle geodesic.h
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Avoid using angle brackets for PROJ headers.

Switching from #include &lt;proj.h&gt; to #include "proj.h",
and correspondingly for projects.h and proj_api.h,
reduces the risk of accidentally picking up a system
installed older version of the header while building
a new version of PROJ.

* Also handle geodesic.h
</pre>
</div>
</content>
</entry>
<entry>
<title>Shrink PJ_XXX_INFO structs, but keep same syntax. (#775)</title>
<updated>2018-02-07T11:15:04+00:00</updated>
<author>
<name>Thomas Knudsen</name>
<email>busstoptaktik@users.noreply.github.com</email>
</author>
<published>2018-02-07T11:15:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=4f00f09f1c306e87dfea3a5bc49dcaae72280e00'/>
<id>4f00f09f1c306e87dfea3a5bc49dcaae72280e00</id>
<content type='text'>
* Shrink PJ_XXX_INFO structs, but keep same syntax.

A number of the fixed length strings in the INFO structs are simply
reflections of material that already exists as static strings at a
number of places in the library (or in the case of PJ_INFO, really
*should* exist, and now is implemented).

This PR replaces these cases of constant length strings with const
char pointers. The usage syntax is unchanged, and so is the nice
property of having the return value allocated on the stack, and
hence not requiring explicit memory management by the caller.

proj_info now only does setup once - and the searchpath entry of
PJ_INFO is not arbitrarily truncated at 512 bytes. Repeated calls
simply returns a copy of already prepared material.

The id, description and definition entries of PJ_PROJ_INFO are now
also guaranteed to hold the entire text of the corresponding static
string, by being represented by a const char pointer to that actual
static string.

PJ_GRID_INFO and PJ_INIT_INFO (i.e. the two smallest INFO structs)
are unchanged.

* Eliminate pj_strlcpy - not needed anymore: Remining calls could
  safely be replaced by strncpy.

* Extend PROJ_INFO with paths from pj_set_searchpath.
  NOTE: Need to call pj_set_searchpath before first call to proj_info

Huge thanks to Kristian Evers and Even Rouault for comments, debugging and advice.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Shrink PJ_XXX_INFO structs, but keep same syntax.

A number of the fixed length strings in the INFO structs are simply
reflections of material that already exists as static strings at a
number of places in the library (or in the case of PJ_INFO, really
*should* exist, and now is implemented).

This PR replaces these cases of constant length strings with const
char pointers. The usage syntax is unchanged, and so is the nice
property of having the return value allocated on the stack, and
hence not requiring explicit memory management by the caller.

proj_info now only does setup once - and the searchpath entry of
PJ_INFO is not arbitrarily truncated at 512 bytes. Repeated calls
simply returns a copy of already prepared material.

The id, description and definition entries of PJ_PROJ_INFO are now
also guaranteed to hold the entire text of the corresponding static
string, by being represented by a const char pointer to that actual
static string.

PJ_GRID_INFO and PJ_INIT_INFO (i.e. the two smallest INFO structs)
are unchanged.

* Eliminate pj_strlcpy - not needed anymore: Remining calls could
  safely be replaced by strncpy.

* Extend PROJ_INFO with paths from pj_set_searchpath.
  NOTE: Need to call pj_set_searchpath before first call to proj_info

Huge thanks to Kristian Evers and Even Rouault for comments, debugging and advice.</pre>
</div>
</content>
</entry>
<entry>
<title>Make pj_free return with the correct errno.</title>
<updated>2018-02-06T20:30:42+00:00</updated>
<author>
<name>Kristian Evers</name>
<email>kristianevers@gmail.com</email>
</author>
<published>2018-02-06T19:52:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=27200f2f7689cb77546efb2e3ba0e795c46fd45f'/>
<id>27200f2f7689cb77546efb2e3ba0e795c46fd45f</id>
<content type='text'>
Error codes can't be specified directly in pj_free. With this change the
error number in proj_errno() is passed on to P-&gt;destructor to ensure
that we communicate the correct reason why the PJ object is being freed.
This was a problem in the cs2cs_emulation setup when auxillary
operations failed to create. The error was not propagated properly when
destroying the parent object.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Error codes can't be specified directly in pj_free. With this change the
error number in proj_errno() is passed on to P-&gt;destructor to ensure
that we communicate the correct reason why the PJ object is being freed.
This was a problem in the cs2cs_emulation setup when auxillary
operations failed to create. The error was not propagated properly when
destroying the parent object.
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce compatibility for cs2cs-style proj-strings into the 4D API.</title>
<updated>2018-01-31T15:25:32+00:00</updated>
<author>
<name>Thomas Knudsen</name>
<email>thokn@sdfe.dk</email>
</author>
<published>2018-01-05T11:03:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=90968ff934a348b02f982080f8b7ccf17e037a46'/>
<id>90968ff934a348b02f982080f8b7ccf17e037a46</id>
<content type='text'>
Parameters such as towgs84, nadgrids and geoidgrids was previously only
handled by pj_transform(). This commit add a compatibility layer in
proj_create() by calling the pj_cs2cs_emulation_setup() function. This
function sets up a handful of predefined transformation objects on the
PJ object that is being created. Each of these transformation objects
are related to the cs2cs-style parameters we are trying to emulate in
the 4D API. That is, if the +towgs84 parameters is used we create
P-&gt;helmert with the parameters specified in +towgs84. Similarly for
+axis, +nadgrids and +geoidgrids. When these transformation objects
exists we use them in the prepare and finalize functions in pj_fwd/
pj_inv. If no cs2cs-style parametes are specified we skip those
parts of the prepare and finalizing steps.

Co-authored-by:Thomas Knudsen &lt;thokn@sdfe.dk&gt;
Co-authored-by:Kristian Evers &lt;kristianevers@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Parameters such as towgs84, nadgrids and geoidgrids was previously only
handled by pj_transform(). This commit add a compatibility layer in
proj_create() by calling the pj_cs2cs_emulation_setup() function. This
function sets up a handful of predefined transformation objects on the
PJ object that is being created. Each of these transformation objects
are related to the cs2cs-style parameters we are trying to emulate in
the 4D API. That is, if the +towgs84 parameters is used we create
P-&gt;helmert with the parameters specified in +towgs84. Similarly for
+axis, +nadgrids and +geoidgrids. When these transformation objects
exists we use them in the prepare and finalize functions in pj_fwd/
pj_inv. If no cs2cs-style parametes are specified we skip those
parts of the prepare and finalizing steps.

Co-authored-by:Thomas Knudsen &lt;thokn@sdfe.dk&gt;
Co-authored-by:Kristian Evers &lt;kristianevers@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Free format everywhere (#693)</title>
<updated>2017-12-17T17:04:13+00:00</updated>
<author>
<name>Thomas Knudsen</name>
<email>busstoptaktik@users.noreply.github.com</email>
</author>
<published>2017-12-17T17:04:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=74ae4b09bbc80edb44a123a8272014d15b7d4b8d'/>
<id>74ae4b09bbc80edb44a123a8272014d15b7d4b8d</id>
<content type='text'>
* Free format now in cmd lines, in gie, and in init files

* Corrected handling of defaults

* Add demo of integrated definition and validation

* Repair stack-smashing memmove in get_init

* repair paralist corruption, clean up debug output

* Install test files for nmake builds

* Add many improvements following suggestions by @schwehr

* Be consistent in requiring lower case everywhere in gie.c

Also, this Fixes #703 and Fixes #697 
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Free format now in cmd lines, in gie, and in init files

* Corrected handling of defaults

* Add demo of integrated definition and validation

* Repair stack-smashing memmove in get_init

* repair paralist corruption, clean up debug output

* Install test files for nmake builds

* Add many improvements following suggestions by @schwehr

* Be consistent in requiring lower case everywhere in gie.c

Also, this Fixes #703 and Fixes #697 
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace pj_ell_set with reimplementation... (#675)</title>
<updated>2017-11-20T12:20:02+00:00</updated>
<author>
<name>Thomas Knudsen</name>
<email>busstoptaktik@users.noreply.github.com</email>
</author>
<published>2017-11-20T12:20:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=5f1522ad7652e562f98328b05d905c407bab99e9'/>
<id>5f1522ad7652e562f98328b05d905c407bab99e9</id>
<content type='text'>
* Replace pj_ell_set with reimplementation supporting ellipsoid inheritance

* remove unreachable code from pj_ell_set.c

* Swap steps, so ellps args are read first, in accordance with historical behaviour

* Add ellipsoid tests to CI targets

* Reduce some optimistic tolerances

OS/X appears to have a slightly off float handling, resulting in differences at the nanometer level. Switching to 10 nm.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Replace pj_ell_set with reimplementation supporting ellipsoid inheritance

* remove unreachable code from pj_ell_set.c

* Swap steps, so ellps args are read first, in accordance with historical behaviour

* Add ellipsoid tests to CI targets

* Reduce some optimistic tolerances

OS/X appears to have a slightly off float handling, resulting in differences at the nanometer level. Switching to 10 nm.
</pre>
</div>
</content>
</entry>
<entry>
<title>Prevent crashes and leaks on allocation failure (#606)</title>
<updated>2017-10-19T12:04:35+00:00</updated>
<author>
<name>Aaron Puchert</name>
<email>aaronpuchert@alice-dsl.net</email>
</author>
<published>2017-10-19T12:04:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=3ef083767eaf975399243246605fddc40cc097f9'/>
<id>3ef083767eaf975399243246605fddc40cc097f9</id>
<content type='text'>
* Prevent crashes and leaks on allocation failure

Memory allocation can fail. We need to gracefully handle this case and
prevent dereferencing null pointers.

* Make NULL checks consistent within a file

* Properly report allocation errors

* Improve cleanup in pj_gc_reader.c

* Implement pj_strdup and use instead of strdup

The function strdup is not part of ANSI C 89, but a POSIX extension.
Therefore we can not rely on it being available on all platforms.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Prevent crashes and leaks on allocation failure

Memory allocation can fail. We need to gracefully handle this case and
prevent dereferencing null pointers.

* Make NULL checks consistent within a file

* Properly report allocation errors

* Improve cleanup in pj_gc_reader.c

* Implement pj_strdup and use instead of strdup

The function strdup is not part of ANSI C 89, but a POSIX extension.
Therefore we can not rely on it being available on all platforms.
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolve #594 and OSS-Fuzz-3569 (#595)</title>
<updated>2017-10-08T14:29:16+00:00</updated>
<author>
<name>Thomas Knudsen</name>
<email>busstoptaktik@users.noreply.github.com</email>
</author>
<published>2017-10-08T14:29:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=cb335699aafc84952d1a6a94eb9d2ee201ad416f'/>
<id>cb335699aafc84952d1a6a94eb9d2ee201ad416f</id>
<content type='text'>
* Resolve #594 and OSS-Fuzz-3569

* Restructure PJ_geos opaque object: sweep_axis showed unneeded, and freeing it was wrong. Eliminate instead

Resolves #594 
Resolves OSS-Fuzz Issue 3569

Credit to OSS-Fuzz</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Resolve #594 and OSS-Fuzz-3569

* Restructure PJ_geos opaque object: sweep_axis showed unneeded, and freeing it was wrong. Eliminate instead

Resolves #594 
Resolves OSS-Fuzz Issue 3569

Credit to OSS-Fuzz</pre>
</div>
</content>
</entry>
</feed>
