Skip to content

Commit d7f6f30

Browse files
authored
const/mut in jsglue to be more strict (#394)
1 parent e088ddd commit d7f6f30

File tree

2 files changed

+23
-23
lines changed

2 files changed

+23
-23
lines changed

rust-mozjs/src/glue_wrappers.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ wrap!(glue: pub fn InvokeHasOwn(handler: *const ::std::os::raw::c_void, cx: *mut
33
wrap!(glue: pub fn CallJitGetterOp(info: *const JSJitInfo, cx: *mut JSContext, thisObj: HandleObject, specializedThis: *mut ::std::os::raw::c_void, argc: ::std::os::raw::c_uint, vp: *mut Value) -> bool);
44
wrap!(glue: pub fn CallJitSetterOp(info: *const JSJitInfo, cx: *mut JSContext, thisObj: HandleObject, specializedThis: *mut ::std::os::raw::c_void, argc: ::std::os::raw::c_uint, vp: *mut Value) -> bool);
55
wrap!(glue: pub fn CallJitMethodOp(info: *const JSJitInfo, cx: *mut JSContext, thisObj: HandleObject, specializedThis: *mut ::std::os::raw::c_void, argc: u32, vp: *mut Value) -> bool);
6-
wrap!(glue: pub fn NewProxyObject(aCx: *mut JSContext, aHandler: *const ::std::os::raw::c_void, aPriv: HandleValue, proto: *mut JSObject, aClass: *mut JSClass, aLazyProto: bool) -> *mut JSObject);
6+
wrap!(glue: pub fn NewProxyObject(aCx: *mut JSContext, aHandler: *const ::std::os::raw::c_void, aPriv: HandleValue, proto: *mut JSObject, aClass: *const JSClass, aLazyProto: bool) -> *mut JSObject);
77
wrap!(glue: pub fn WrapperNew(aCx: *mut JSContext, aObj: HandleObject, aHandler: *const ::std::os::raw::c_void, aClass: *const JSClass) -> *mut JSObject);
88
wrap!(glue: pub fn NewWindowProxy(aCx: *mut JSContext, aObj: HandleObject, aHandler: *const ::std::os::raw::c_void) -> *mut JSObject);
99
wrap!(glue: pub fn RUST_JSID_IS_INT(id: HandleId) -> bool);

rust-mozjs/src/jsglue.cpp

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,20 @@ typedef size_t (*GetSize)(JSObject* obj);
4141
WantToMeasure gWantToMeasure = nullptr;
4242

4343
struct JobQueueTraps {
44-
JSObject* (*getIncumbentGlobal)(void* queue, JSContext* cx);
45-
bool (*enqueuePromiseJob)(void* queue, JSContext* cx,
44+
JSObject* (*getIncumbentGlobal)(const void* queue, JSContext* cx);
45+
bool (*enqueuePromiseJob)(const void* queue, JSContext* cx,
4646
JS::HandleObject promise, JS::HandleObject job,
4747
JS::HandleObject allocationSite,
4848
JS::HandleObject incumbentGlobal) = 0;
49-
bool (*empty)(void* queue);
49+
bool (*empty)(const void* queue);
5050
};
5151

5252
class RustJobQueue : public JS::JobQueue {
5353
JobQueueTraps mTraps;
54-
void* mQueue;
54+
const void* mQueue;
5555

5656
public:
57-
RustJobQueue(const JobQueueTraps& aTraps, void* aQueue)
57+
RustJobQueue(const JobQueueTraps& aTraps, const void* aQueue)
5858
: mTraps(aTraps), mQueue(aQueue) {}
5959

6060
virtual JSObject* getIncumbentGlobal(JSContext* cx) {
@@ -83,27 +83,27 @@ class RustJobQueue : public JS::JobQueue {
8383
};
8484

8585
struct ReadableStreamUnderlyingSourceTraps {
86-
void (*requestData)(void* source, JSContext* cx, JS::HandleObject stream,
86+
void (*requestData)(const void* source, JSContext* cx, JS::HandleObject stream,
8787
size_t desiredSize);
88-
void (*writeIntoReadRequestBuffer)(void* source, JSContext* cx,
88+
void (*writeIntoReadRequestBuffer)(const void* source, JSContext* cx,
8989
JS::HandleObject stream, JS::HandleObject chunk,
9090
size_t length, size_t* bytesWritten);
91-
void (*cancel)(void* source, JSContext* cx, JS::HandleObject stream,
91+
void (*cancel)(const void* source, JSContext* cx, JS::HandleObject stream,
9292
JS::HandleValue reason, JS::Value* resolve_to);
93-
void (*onClosed)(void* source, JSContext* cx, JS::HandleObject stream);
94-
void (*onErrored)(void* source, JSContext* cx, JS::HandleObject stream,
93+
void (*onClosed)(const void* source, JSContext* cx, JS::HandleObject stream);
94+
void (*onErrored)(const void* source, JSContext* cx, JS::HandleObject stream,
9595
JS::HandleValue reason);
9696
void (*finalize)(JS::ReadableStreamUnderlyingSource* source);
9797
};
9898

9999
class RustReadableStreamUnderlyingSource
100100
: public JS::ReadableStreamUnderlyingSource {
101101
ReadableStreamUnderlyingSourceTraps mTraps;
102-
void* mSource;
102+
const void* mSource;
103103

104104
public:
105105
RustReadableStreamUnderlyingSource(
106-
const ReadableStreamUnderlyingSourceTraps& aTraps, void* aSource)
106+
const ReadableStreamUnderlyingSourceTraps& aTraps, const void* aSource)
107107
: mTraps(aTraps), mSource(aSource) {}
108108

109109
virtual void requestData(JSContext* cx, JS::HandleObject stream,
@@ -138,8 +138,8 @@ class RustReadableStreamUnderlyingSource
138138
};
139139

140140
struct JSExternalStringCallbacksTraps {
141-
void (*finalize)(void* privateData, char16_t* chars);
142-
size_t (*sizeOfBuffer)(void* privateData, const char16_t* chars,
141+
void (*finalize)(const void* privateData, char16_t* chars);
142+
size_t (*sizeOfBuffer)(const void* privateData, const char16_t* chars,
143143
mozilla::MallocSizeOf mallocSizeOf);
144144
};
145145

@@ -663,7 +663,7 @@ JS::ReadOnlyCompileOptions* NewCompileOptions(JSContext* aCx, const char* aFile,
663663

664664
JSObject* NewProxyObject(JSContext* aCx, const void* aHandler,
665665
JS::HandleValue aPriv, JSObject* proto,
666-
JSClass* aClass, bool aLazyProto) {
666+
const JSClass* aClass, bool aLazyProto) {
667667
js::ProxyOptions options;
668668
if (aClass) {
669669
options.setClass(aClass);
@@ -787,12 +787,12 @@ JSObject* UnwrapObjectStatic(JSObject* obj) {
787787
return js::CheckedUnwrapStatic(obj);
788788
}
789789

790-
JSObject* UnwrapObjectDynamic(JSObject* obj, JSContext* cx, bool stopAtOuter) {
791-
return js::CheckedUnwrapDynamic(obj, cx, stopAtOuter);
790+
JSObject* UnwrapObjectDynamic(JSObject* obj, JSContext* cx, bool stopAtWindowProxy) {
791+
return js::CheckedUnwrapDynamic(obj, cx, stopAtWindowProxy);
792792
}
793793

794-
JSObject* UncheckedUnwrapObject(JSObject* obj, bool stopAtOuter) {
795-
return js::UncheckedUnwrap(obj, stopAtOuter);
794+
JSObject* UncheckedUnwrapObject(JSObject* obj, bool stopAtWindowProxy) {
795+
return js::UncheckedUnwrap(obj, stopAtWindowProxy);
796796
}
797797

798798
JS::PersistentRootedIdVector* CreateRootedIdVector(JSContext* cx) {
@@ -1021,7 +1021,7 @@ void JS_GetReservedSlot(JSObject* obj, uint32_t index, JS::Value* dest) {
10211021
}
10221022

10231023
// keep this in sync with EncodedStringCallback in glue.rs
1024-
typedef void (*EncodedStringCallback)(char*);
1024+
typedef void (*EncodedStringCallback)(const char*);
10251025

10261026
void EncodeStringToUTF8(JSContext* cx, JS::HandleString str,
10271027
EncodedStringCallback cb) {
@@ -1033,14 +1033,14 @@ JSString* JS_ForgetStringLinearness(JSLinearString* str) {
10331033
return JS_FORGET_STRING_LINEARNESS(str);
10341034
}
10351035

1036-
JS::JobQueue* CreateJobQueue(const JobQueueTraps* aTraps, void* aQueue) {
1036+
JS::JobQueue* CreateJobQueue(const JobQueueTraps* aTraps, const void* aQueue) {
10371037
return new RustJobQueue(*aTraps, aQueue);
10381038
}
10391039

10401040
void DeleteJobQueue(JS::JobQueue* queue) { delete queue; }
10411041

10421042
JS::ReadableStreamUnderlyingSource* CreateReadableStreamUnderlyingSource(
1043-
const ReadableStreamUnderlyingSourceTraps* aTraps, void* aSource) {
1043+
const ReadableStreamUnderlyingSourceTraps* aTraps, const void* aSource) {
10441044
return new RustReadableStreamUnderlyingSource(*aTraps, aSource);
10451045
}
10461046

0 commit comments

Comments
 (0)