diff --git a/channels/geometry/client/geometry_main.c b/channels/geometry/client/geometry_main.c index eb65b2ca2..cb5e2ae40 100644 --- a/channels/geometry/client/geometry_main.c +++ b/channels/geometry/client/geometry_main.c @@ -27,7 +27,6 @@ #include #include -#include #include #include #include @@ -82,23 +81,6 @@ static BOOL mappedGeometryKeyCompare(UINT64* g1, UINT64* g2) return *g1 == *g2; } -void mappedGeometryRef(MAPPED_GEOMETRY* g) -{ - InterlockedIncrement(&g->refCounter); -} - -void mappedGeometryUnref(MAPPED_GEOMETRY* g) -{ - if (InterlockedDecrement(&g->refCounter)) - return; - - g->MappedGeometryUpdate = NULL; - g->MappedGeometryClear = NULL; - g->custom = NULL; - free(g->geometry.rects); - free(g); -} - static void freerdp_rgndata_reset(FREERDP_RGNDATA* data) { data->nRectCount = 0; diff --git a/client/common/CMakeLists.txt b/client/common/CMakeLists.txt index b6805e593..d4588e10b 100644 --- a/client/common/CMakeLists.txt +++ b/client/common/CMakeLists.txt @@ -30,7 +30,8 @@ set(${MODULE_PREFIX}_SRCS cmdline.c compatibility.c compatibility.h - file.c) + file.c + geometry.c) foreach(FREERDP_CHANNELS_CLIENT_SRC ${FREERDP_CHANNELS_CLIENT_SRCS}) get_filename_component(NINC ${FREERDP_CHANNELS_CLIENT_SRC} PATH) diff --git a/client/common/geometry.c b/client/common/geometry.c new file mode 100644 index 000000000..92f57ccfc --- /dev/null +++ b/client/common/geometry.c @@ -0,0 +1,42 @@ +/** + * FreeRDP: A Remote Desktop Protocol Implementation + * Geometry tracking Virtual Channel Extension + * + * Copyright 2017 David Fort + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +void mappedGeometryRef(MAPPED_GEOMETRY* g) +{ + InterlockedIncrement(&g->refCounter); +} + +void mappedGeometryUnref(MAPPED_GEOMETRY* g) +{ + if (InterlockedDecrement(&g->refCounter)) + return; + + g->MappedGeometryUpdate = NULL; + g->MappedGeometryClear = NULL; + g->custom = NULL; + free(g->geometry.rects); + free(g); +}