const char *
lwgeom_typename(int type)
{
+ // something went wrong somewhere
+ if ( type < 0 || type > 7 ) {
+ // assert(0);
+ return "Invalid type";
+ }
return lwgeomTypeName[type];
}
if ( lwgeom_getType(type) != LINETYPE)
{
- lwerror("lwline_deserialize: attempt to deserialize a line when its not really a line");
+ lwerror("lwline_deserialize: attempt to deserialize a line which is really a %s", lwgeom_typename(type));
return NULL;
}
type = serialized_form[0];
- if ( lwgeom_getType(type) != POINTTYPE) return NULL;
+ if ( lwgeom_getType(type) != POINTTYPE)
+ {
+ lwerror("lwpoint_deserialize: attempt to deserialize a point which is really a %s", lwgeom_typename(type));
+ return NULL;
+ }
result->type = type;
loc = serialized_form+1;
if ( TYPE_GETTYPE(type) != POLYGONTYPE)
{
- lwerror("lwpoly_deserialize called with arg of type %d",
- lwgeom_getType(type));
+ lwerror("lwpoly_deserialize: attempt to deserialize a poly which is really a %s", lwgeom_typename(type));
return NULL;
}