1016 Commits

Author SHA1 Message Date
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
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
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
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
dc3d88f053 [0.14.0-rc] Bump version 2016-06-16 17:55:45 -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
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
Scott Kyle
d26edff0f5 Add format.cpp to Xcode Node build 2016-06-14 17:42:41 -07:00
Scott Kyle
af52e9f437 Make stuff build for Node and Android 2016-06-14 17:22:04 -07:00
Ari Lazier
2e3b95f2e7 merge latest master 2016-06-14 16:40:57 -07:00
Ari Lazier
f0b533c75f add util back to header path 2016-06-14 15:11:19 -07:00
Ari Lazier
08dd1a41be always invalidate newly opened realms 2016-06-14 14:36:27 -07:00
Ari Lazier
81a32909c1 update to latest object store changes 2016-06-14 14:33:27 -07:00
Ari Lazier
5b8f43dca2 get latest from os branch 2016-06-14 13:51:40 -07:00
Scott Kyle
6d524107e0 Silence warnings about member function pointers
The base ClassDefinition defines its constructor member as null, but some subclass have a static constructor function. This allows both cases to be handled without a warning.
2016-06-13 17:24:43 -07:00
Scott Kyle
43f7329047 Remove confusing, unnecessary typedef
This is not used anywhere.
2016-06-13 17:24:43 -07:00
Scott Kyle
9bcb30e86d Add missing source files to RealmNode target 2016-06-13 17:24:43 -07:00
Ari Lazier
c7e156a7b8 Merge pull request #488 from realm/al-typos
fixes for typos and added upsert test
2016-06-13 14:51:53 -07:00
Ari Lazier
0a4e0665ae fixes for typos and added upsert test 2016-06-13 14:46:26 -07:00
Ari Lazier
3901bf53dc Merge pull request #479 from realm/al-muti-realm
fix for setting properties to objects from other realms
2016-06-13 14:44:28 -07:00
Scott Kyle
6aa9825cd1 Merge pull request #469 from realm/sk-object-store-merge
Merge latest object store (includes Android async stuff)
2016-06-13 14:38:28 -07:00
Ari Lazier
2b48ebb30a negate if statements 2016-06-13 14:07:50 -07:00
Kenneth Geisshirt
57a1015b85 Killing a few gcc warnings (#88)
* killing a few gcc warnings
2016-06-13 09:31:41 +02:00
Scott Kyle
cd20d870dd Fix crash from querying with object from another Realm 2016-06-09 15:32:37 -07:00
Scott Kyle
cdcb99a502 Improvements from PR feedback 2016-06-09 13:07:05 -07:00
Ari Lazier
81feca0ce9 fix for setting properties to objects from other realms 2016-06-08 11:22:12 -07:00
Mark Rowe
7f1be608f3 Merge pull request #85 from realm/mar/cocoa-list
Pull in changes to List from realm-cocoa
2016-06-07 15:45:08 -07:00
Thomas Goyne
5054bbc1a2 Add the path of the Realm file to the config mismatch exception message 2016-06-06 15:30:57 -07:00