Commit Graph

2435 Commits

Author SHA1 Message Date
Thomas Goyne b59af706ea Update binding code for API changes 2016-07-18 14:15:25 -07:00
Yavor Georgiev 9320be158c Allow for non-nullterminated object type names (#97)
`StringData::data()` returns the underlying buffer, which might not be null-terminated, so the resulting string from appending to `"class_"` has garbage in the end. Use the `std::string` conversion of `StringData` because it takes the size of the string into account.
2016-07-18 14:15:25 -07:00
Thomas Goyne 847b6852c9 Change the API-misuse exceptions from runtime_error to logic_error 2016-07-18 14:15:25 -07:00
Mark Rowe 11018952e9 Change API misuse exceptions in object_accessor.hpp to derive from `std::logic_error` rather than `std::runtime_error`.
Also includes the following minor changes:
* Renames `ReadOnlyPropertyValueException` to
  `ReadOnlyPropertyException` since it's the property that's read-only,
  not the value.
* Elminiates some unnecessary copies of arguments passed to the
  exception constructors.
* Makes the exception type data members public, since otherwise there's
  no point in storing them at.
2016-07-18 14:15:25 -07:00
Mark Rowe 00e4790353 Have `List` and `Results` fetch their object schema when requested.
This avoids the need to eagerly fetch the object schema in order to
construct a `List` or `Results`. Instead the work can be deferred until
the object schema is requested. Since `List` and `Results` never use the
object schema themselves this can avoid unnecessary work in some bindings.
2016-07-18 14:15:25 -07:00
Mark Rowe f529ec9f58 Fix a typo in the name of a #define. 2016-07-18 14:15:25 -07:00
Mark Rowe f00eb4f52d Enable clang's warning about implicit fallthrough. 2016-07-18 14:15:25 -07:00
Mark Rowe ac2223b32d Fix compiler checks to match clang on OS X, which CMake labels AppleClang. 2016-07-18 14:12:58 -07:00
Mark Rowe c756045871 Perform extra synchronization the first time `TsanNotifyWorker` hands a `RealmCoordinator` to the worker thread.
This prevents TSan from reporting data races on members of the coordinator.
2016-07-18 14:12:58 -07:00
Mark Rowe 7c0b99594a Replace `Results::set_live` with `Results::snapshot` and `List::snapshot`, and add tests.
`snapshot()` functions are a better fit for what realm-js needs. The new
API also makes it clearer that the liveness of a given `Results`
cannot change at arbitrary times. Changing the liveness at arbitrary
times was not safe and could result in incorrect behavior, such as a
non-live `Results` changing.
2016-07-18 14:12:58 -07:00
Mark Rowe 8798b1c617 Remove workaround for a core issue fixed in core v1.2.0. 2016-07-18 14:12:57 -07:00
Kristian Dupont edf53a1750 Specify width of PropertyType to 1 byte 2016-07-18 14:12:57 -07:00
Thomas Goyne 8293675bd6 Update to core 1.2.0 2016-07-18 14:12:57 -07:00
Thomas Goyne aaa811306e Resolve trivial differences with realm-cocoa 2016-07-18 14:12:57 -07:00
Thomas Goyne bdc8dbc5b2 Enable more warnings (and fix them)
This brings the warnings settings in line with realm-cocoa's.
2016-07-18 13:40:08 -07:00
Ari Lazier 2ed029d74f Merge pull request #512 from realm/sk-vs-code
Add support for debugging in Visual Studio Code
2016-07-17 10:59:18 -07:00
Scott Kyle b06ee441bd Aligning mixpanel implementation with Java & Cocoa (#513)
Aligning mixpanel implementation with Java & Cocoa
2016-06-30 13:26:36 +01:00
Scott Kyle 717d6781a1 Add support for debugging in Visual Studio Code
Since Code runs in Node, rather than Chrome, we need to require the `sync-request` module. The global `__debug__` object was exposed by the vscode-react-native plugin v0.1.5 for us to be able to do that.

Resolves #374
2016-06-29 16:02:50 -07:00
Scott Kyle c026c198ea Merge tag 'v0.14.1'
* tag 'v0.14.1':
  [0.14.1] Bump version
  [0.14.0-rc] Bump version
  Disable "Strip Linked Product" on our static libs
  Fix for linker error when building for iOS 7
2016-06-28 17:32:48 -07:00
Scott Kyle 51ec21e37b [0.14.1] Bump version 2016-06-28 17:27:49 -07:00
Scott Kyle 63adf8732e [0.14.0-rc] Bump version 2016-06-28 12:15:36 -07:00
Scott Kyle 6109675749 Disable "Strip Linked Product" on our static libs
There seems to a bug inside the `strip` command (or its `ld64` library) that is being triggered by some users who get this message: `Assertion failed: (0 && "need to handle arm64 -r reloc")`

It is reported that disabling this setting side-steps the issue, and we don't need any stripping done on the static library itself.

Fixes #503
2016-06-28 12:13:58 -07:00
Scott Kyle e8ea8e493e Fix for linker error when building for iOS 7
By default, React Native projects target a minimum of iOS 7, but our projects were set to iOS 8 because previously we used a dynamic framework.

When building for an iOS 7 minimum target version, the linker would complain about thread local variables not working on iOS 7. So it was necessary to add even more checks (iOS >= 8 or OS X >= 10.7) before using native thread local variables rather than our shim.

This also changes our projects to target iOS 7 so we can catch these issues quicker in the future.
2016-06-27 12:16:35 -07:00
Scott Kyle 8f33b53f8e Merge pull request #499 from realm/sk-adjust-deps
Remove rnpm postlink script
2016-06-23 11:08:42 -04:00
Scott Kyle b6add3a77e Add CHANGELOG item about rnpm 1.9.0+ support 2016-06-22 14:35:16 -04:00
Scott Kyle e0ff68059b Remove rnpm post install script
This will mean we only support rnpm 1.9.0 and above.
2016-06-22 14:25:35 -04:00
Scott Kyle ebdf505194 Move mockery to dev dependency and upgrade to 1.7.0 2016-06-22 14:25:35 -04:00
Scott Kyle 4e714ac5c3 [0.14.0] Bump version 2016-06-22 11:42:27 -04:00
Ari Lazier 5298bff909 Merge pull request #498 from realm/al-rmdir
Remove management directories in node
2016-06-20 12:04:31 -07:00
Ari Lazier 7d42d26fe9 quote dir path 2016-06-20 12:02:55 -07:00
Ari Lazier 5488eff9b9 recursively delete management directories 2016-06-20 11:41:18 -07:00
Ari Lazier 5eb64025f9 remove management directories in node 2016-06-20 10:49:53 -07:00
Scott Kyle a78f2270ae Merge pull request #489 from realm/sk-node-linux
Add ability to run Node tests on Linux
2016-06-17 13:36:59 -07:00
Scott Kyle ae549aa32e Default to /tmp for TMPDIR
Even though it's UNIX standard, it appears that TMPDIR is missing on Linux!
2016-06-17 13:17:01 -07:00
Scott Kyle adc07fdd7f Remove files accidentally added to GCDWebServers target
Not sure when this happened!
2016-06-17 13:16:01 -07:00
Scott Kyle 928ab03ce4 Update to download and use core build for Node
This will need to be updated again with a newer version since 1.1.2 build was created on CI but is not actually on static.realm.io until a new release is made.
2016-06-17 11:19:19 -07:00
Scott Kyle 12517a0d1e Add ability to run Node tests on Linux
It uses the Android ExternalCommitHelper implementation.

The Dockerfile requires that you have a static library build of core for Linux with PIC enabled.
2016-06-17 02:38:33 -07:00
Scott Kyle ab05c5f732 Add introduced version to objectForPrimaryKey doc 2016-06-17 02:38:09 -07:00
Scott Kyle dc3d88f053 [0.14.0-rc] Bump version 2016-06-16 17:55:45 -07:00
Scott Kyle c340105c09 Update CHANGELOG for 0.14.0 release 2016-06-16 17:52:57 -07:00
Scott Kyle 979c035dbb Add isValid() method doc for collections 2016-06-16 17:50:30 -07:00
Scott Kyle 8f3c778b72 Add sharedLibraries to rnpm section of package.json
Now supported by rnpm 1.9.0!
2016-06-16 17:49:47 -07:00
Scott Kyle 7931f1d483 Merge pull request #480 from realm/sk-thread-id-fix
Fix bug due to std:🧵:id being reused
2016-06-16 17:34:59 -07:00
Scott Kyle 55aa3d0702 Fix thread_local.hpp to compile with GCC 2016-06-16 17:32:11 -07:00
Scott Kyle 13ab8f8111 Refactor thread_id.hpp into cpp and thread_local.hpp 2016-06-16 17:02:53 -07:00
Scott Kyle b55483d2d9 Emulate thread_local for older iPhone targets
It seems that Xcode clang will not even support __thread for iPhone 5 and older, so this includes a simple abstraction over pthread keys in that case.
2016-06-16 17:02:53 -07:00
Scott Kyle 446cb0245e Fix bug due to std:🧵:id being reused
After a thread is destroyed, a thread id might be reused. This is true for pthread_self() and hence std:🧵:id. We were hitting this in Chrome debug mode because the "worker" thread was being destroyed and a new one immediately created when reloading. The thread id would be the same, and therefore we'd get back the SharedRealm for the previously destroyed thread (which had yet to be garbage collected.

The new implementation uses an atomically incremented, thread-local identifier, which serves our needs very well.

Fixes #473
2016-06-16 17:02:53 -07:00
Ari Lazier 7c2518c01f Merge pull request #462 from realm/al-os-latest
PR feedback fixes from object store pr
2016-06-15 07:26:32 -07:00
Scott Kyle a335d7bbc8 The DEBUG macro is now defined at the project level 2016-06-15 01:19:19 -07:00
Scott Kyle 44fc1a4b36 Change RealmJS to use regular and debug cores
Bitcode build went away.
2016-06-14 18:04:12 -07:00