@@ -211,13 +211,13 @@ class JObject : public ClassTag
211
211
static void callStatic (const string_view& name, Args&&... args);
212
212
213
213
template <typename T>
214
- T get (string_view&& fieldName) const ;
214
+ T get (string_view fieldName) const ;
215
215
template <typename T>
216
- bool set (string_view&& fieldName, T&& v);
216
+ bool set (string_view fieldName, T&& v);
217
217
template <typename T>
218
- static T getStatic (string_view&& fieldName);
218
+ static T getStatic (string_view fieldName);
219
219
template <typename T>
220
- static bool setStatic (string_view&& fieldName, T&& v);
220
+ static bool setStatic (string_view fieldName, T&& v);
221
221
222
222
/*
223
223
Field API
@@ -276,7 +276,7 @@ class JObject : public ClassTag
276
276
private:
277
277
static jclass classId (JNIEnv* env = nullptr );
278
278
JObject& setError (const string& s) const {
279
- error_ = std::move (s) ;
279
+ error_ = s ;
280
280
return *const_cast <JObject*>(this );
281
281
}
282
282
@@ -776,7 +776,7 @@ namespace detail {
776
776
}
777
777
778
778
template <typename T, typename ... Args>
779
- T call_with_methodID (jobject oid, jclass cid, jmethodID* pmid, function<void (string&& err)> err_cb, const char* signature, const char* name, Args&&... args) {
779
+ T call_with_methodID (jobject oid, jclass cid, jmethodID* pmid, function<void (string&& err)>&& err_cb, const char* signature, const char* name, Args&&... args) {
780
780
if (err_cb)
781
781
err_cb (string ());
782
782
if (!cid)
@@ -807,7 +807,7 @@ namespace detail {
807
807
}
808
808
809
809
template <typename T, typename ... Args>
810
- T call_static_with_methodID (jclass cid, jmethodID* pmid, function<void (string&& err)> err_cb, const char* signature, const char* name, Args&&... args) {
810
+ T call_static_with_methodID (jclass cid, jmethodID* pmid, function<void (string&& err)>&& err_cb, const char* signature, const char* name, Args&&... args) {
811
811
if (err_cb)
812
812
err_cb (string ());
813
813
if (!cid)
@@ -1060,7 +1060,7 @@ template<class CTag>
1060
1060
template <class FTag , typename T, detail::if_FieldTag<FTag>>
1061
1061
T JObject<CTag>::get() const {
1062
1062
static jfieldID fid = nullptr ;
1063
- auto checker = detail::call_on_exit ([= ]{
1063
+ auto checker = detail::call_on_exit ([this ]{
1064
1064
if (detail::handle_exception ()) // TODO: check fid
1065
1065
setError (string (" Failed to get field '" ) + FTag::name () + " ' with signature '" + signature_of<T>().data () + " '." );
1066
1066
});
@@ -1070,7 +1070,7 @@ template<class CTag>
1070
1070
template <class FTag , typename T, detail::if_FieldTag<FTag>>
1071
1071
bool JObject<CTag>::set(T&& v) {
1072
1072
static jfieldID fid = nullptr ;
1073
- auto checker = detail::call_on_exit ([= ]{
1073
+ auto checker = detail::call_on_exit ([this ]{
1074
1074
if (detail::handle_exception ())
1075
1075
setError (string (" Failed to set field '" ) + FTag::name () + " ' with signature '" + signature_of<T>().data () + " '." );
1076
1076
});
@@ -1123,19 +1123,19 @@ void JObject<CTag>::callStatic(const string_view &name, Args&&... args) {
1123
1123
1124
1124
template <class CTag >
1125
1125
template <typename T>
1126
- T JObject<CTag>::get(string_view&& fieldName) const {
1126
+ T JObject<CTag>::get(string_view fieldName) const {
1127
1127
jfieldID fid = nullptr ;
1128
- auto checker = detail::call_on_exit ([=]{
1128
+ auto checker = detail::call_on_exit ([=, this ]{
1129
1129
if (detail::handle_exception ()) // TODO: check fid
1130
1130
setError (string (" Failed to get field '" ) + fieldName.data () + " ' with signature '" + signature_of<T>().data () + " '." );
1131
1131
});
1132
1132
return detail::get_field<T>(oid_, classId (), &fid, fieldName.data ());
1133
1133
}
1134
1134
template <class CTag >
1135
1135
template <typename T>
1136
- bool JObject<CTag>::set(string_view&& fieldName, T&& v) {
1136
+ bool JObject<CTag>::set(string_view fieldName, T&& v) {
1137
1137
jfieldID fid = nullptr ;
1138
- auto checker = detail::call_on_exit ([=]{
1138
+ auto checker = detail::call_on_exit ([=, this ]{
1139
1139
if (detail::handle_exception ())
1140
1140
setError (string (" Failed to set field '" ) + fieldName.data () + " ' with signature '" + signature_of<T>().data () + " '." );
1141
1141
});
@@ -1144,13 +1144,13 @@ bool JObject<CTag>::set(string_view&& fieldName, T&& v) {
1144
1144
}
1145
1145
template <class CTag >
1146
1146
template <typename T>
1147
- T JObject<CTag>::getStatic(string_view&& fieldName) {
1147
+ T JObject<CTag>::getStatic(string_view fieldName) {
1148
1148
jfieldID fid = nullptr ;
1149
1149
return detail::get_static_field<T>(classId (), &fid, fieldName.data ());
1150
1150
}
1151
1151
template <class CTag >
1152
1152
template <typename T>
1153
- bool JObject<CTag>::setStatic(string_view&& fieldName, T&& v) {
1153
+ bool JObject<CTag>::setStatic(string_view fieldName, T&& v) {
1154
1154
jfieldID fid = nullptr ;
1155
1155
detail::set_static_field<T>(classId (), &fid, fieldName.data (), std::forward<T>(v));
1156
1156
return true ;
0 commit comments