Skip to content

Commit

Permalink
Brought back the auto-stack init in native, albeit, a minimal version
Browse files Browse the repository at this point in the history
only.

Updated ChipStack to now use native to implicitly achieve this auto init
(which sets up MemoryInit) before continuining onwards with
controller-style initialization.
  • Loading branch information
mrjerryjohns committed Jul 7, 2022
1 parent c9b6e0c commit 63798be
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 66 deletions.
2 changes: 1 addition & 1 deletion src/controller/python/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ shared_library("ChipDeviceCtrl") {
"chip/setup_payload/Parser.cpp",
]

sources += [ "CommonStackInit.cpp" ]
sources += [ "chip/native/CommonStackInit.cpp" ]

if (chip_controller) {
sources += [
Expand Down
5 changes: 0 additions & 5 deletions src/controller/python/ChipDeviceController-ScriptBinding.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@

#include <controller/python/ChipDeviceController-ScriptDevicePairingDelegate.h>
#include <controller/python/ChipDeviceController-StorageDelegate.h>
#include <controller/python/CommonStackInit.h>
#include <controller/python/chip/interaction_model/Delegate.h>

#include <credentials/GroupDataProviderImpl.h>
Expand Down Expand Up @@ -223,8 +222,6 @@ chip::Controller::Python::StorageAdapter * pychip_Storage_GetStorageAdapter()

ChipError::StorageType pychip_DeviceController_StackInit(uint32_t bluetoothAdapterId)
{
ReturnErrorOnFailure(chip::Controller::Python::CommonStackInit().AsInteger());

VerifyOrDie(sStorageAdapter != nullptr);

#if CHIP_DEVICE_LAYER_TARGET_LINUX && CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE
Expand Down Expand Up @@ -291,8 +288,6 @@ ChipError::StorageType pychip_DeviceController_StackShutdown()

DeviceControllerFactory::GetInstance().Shutdown();

chip::Controller::Python::CommonStackShutdown();

return CHIP_NO_ERROR.AsInteger();
}

Expand Down
47 changes: 0 additions & 47 deletions src/controller/python/CommonStackInit.h

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@
*
*/

#include <controller/python/CommonStackInit.h>

#include <stdio.h>
#include <stdlib.h>

Expand All @@ -39,29 +37,24 @@
#include <lib/support/logging/CHIPLogging.h>
#include <platform/CHIPDeviceLayer.h>

namespace chip {
namespace Controller {
namespace Python {
static_assert(std::is_same<uint32_t, chip::ChipError::StorageType>::value, "python assumes CHIP_ERROR maps to c_uint32");

extern "C" {

CHIP_ERROR CommonStackInit()
CHIP_ERROR pychip_CommonStackInit()
{
ReturnErrorOnFailure(chip::Platform::MemoryInit());
ReturnErrorOnFailure(chip::DeviceLayer::PlatformMgr().InitChipStack());
return CHIP_NO_ERROR;
}

void CommonStackShutdown()
void pychip_CommonStackShutdown()
{
chip::DeviceLayer::PlatformMgr().Shutdown();

#if 0 //
// We cannot actually call this because the destructor for the MdnsContexts singleton on Darwin only gets called
// on termination of the program, and that unfortunately makes a bunch of Platform::MemoryFree calls.
//
chip::Platform::MemoryShutdown();
#endif
}

} // namespace Python
} // namespace Controller
} // namespace chip
};
2 changes: 2 additions & 0 deletions src/controller/python/chip/native/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,5 +76,7 @@ def GetLibraryHandle() -> ctypes.CDLL:
if _nativeLibraryHandle is None:
_nativeLibraryHandle = ctypes.CDLL(FindNativeLibraryPath())
setter = NativeLibraryHandleMethodArguments(_nativeLibraryHandle)
setter.Set("pychip_CommonStackInit", None, [])
_nativeLibraryHandle.pychip_CommonStackInit()

return _nativeLibraryHandle

0 comments on commit 63798be

Please sign in to comment.